문제 보기 - 순열 (kriii4_T)

시간 제한 메모리 제한 제출 횟수 통과한 사람 수 비율
2000 ms 512 MiB 21 14 66.67%

길이가 N순열이란, 1 이상 N 이하의 자연수 N개로 이루어진, 같은 수가 두 번 이상 등장하지 않는 수열을 의미한다. 길이가 N인 순열의 종류는 총 N!개가 있다.

이 순열에서 K-minsum이라는 것을 정의할 것이다. 순열 A가 있고, 각 원소를 순서대로 나열하면 A1, A2, ..., AN일 때, 순열 AK-minsum

이다. min은 인자로 나열된 수 중의 최솟값을 구하는 함수이다. K가 주어질 때, 길이가 N인 모든 N!개의 순열에 대해 K-minsum을 구해 그 합을 출력하는 프로그램을 작성하라.


입력

첫 번째 줄에는 순열의 길이를 나타내는 자연수 N과 정수 K(0 ≤ K ≤ N)가 주어진다.


부분문제

부분문제
점수
N
1
8
1 ≤ N ≤ 103
2
92
1 ≤ N ≤ 106


출력

길이가 N인 모든 N!개의 순열에 대해 K-minsum을 구해 그 합을 출력한다. 합이 매우 커질 수 있으므로 1,000,000,007로 나눈 나머지를 출력해야 한다.


입출력 예제

입력 예제 출력 예제
1 10
2 08
3 122
5 11908
8 21435680
13 3880193815