어느 날 JOI 군은 타임머신을 얻었습니다. 그는 9세기의 일본으로 가기로 결정했습니다. 그는 당시 일본에서 가장 유명한 승려 중 한 명인 구카이(공해)를 만났습니다. 그 승려는 새로운 수행 방법을 개발하고 싶어 했습니다.
그의 수행은 다음과 같은 방식으로 이루어집니다:
- 구카이는 $N$개의 문장으로 이루어진 불경을 읽습니다. 이 문장들은 순서가 정해져 있으며, 그는 순서대로 읽어야 합니다.
- 각 문장에는 $1$ 이상 $N$ 이하의 정수가 하나씩 적혀 있습니다. 서로 다른 두 문장에 같은 번호가 적혀 있는 경우는 없습니다.
- 그는 하루를 똑같이 $N$등분한 시간대 중 $i$번째 시간대에 정수 $i$ ($1 \le i \le N$)가 적힌 문장을 읽어야 합니다. 각 문장은 매우 짧아서 한 시간대에 문장 하나를 읽는 것은 언제나 가능합니다.
구카이는 가능한 한 빨리 불경 전체를 다 읽고 싶어 합니다. 그러나 다 읽는 데 며칠이 걸리는지는 불경의 문장들에 적힌 정수들에 따라 달라집니다. JOI 군은 구카이로부터 그가 최적의 방법으로 읽었을 때 다 읽는 데 정확히 $K$일이 걸리는 문장들의 정수 배치 방법의 수를 세어 달라는 부탁을 받았습니다.
과제
문장의 개수 $N$과 정수 $K$가 주어졌을 때, 구카이가 최적의 방법으로 읽었을 때 다 읽는 데 정확히 $K$일이 걸리는 문장들의 가능한 정수 배치 방법의 수를 $1\,000\,000\,007$로 나눈 나머지를 계산하십시오.
입력 형식
표준 입력에서 다음 데이터를 읽어 들이십시오.
- 입력의 첫 번째 줄에는 $N$과 $K$가 공백 하나로 구분되어 주어집니다.
출력 형식
구카이가 최적의 방법으로 읽었을 때 다 읽는 데 정확히 $K$일이 걸리는 문장들의 가능한 정수 배치 방법의 수를 $1\,000\,000\,007$로 나눈 나머지를 출력하십시오.
제약 조건
모든 입력 데이터는 다음 조건을 만족합니다.
- $1 \le N \le 100\,000$.
- $1 \le K \le N$.
서브태스크
총 4개의 서브태스크가 있습니다. 각 서브태스크의 점수와 추가 제약 조건은 다음과 같습니다:
서브태스크 1 [4점]
- $N \le 10$.
서브태스크 2 [20점]
- $N \le 300$.
서브태스크 3 [25점]
- $N \le 3\,000$.
서브태스크 4 [51점]
추가적인 제약 조건이 없습니다.
예제
입력 1
3 2
출력 1
4
설명
그가 다 읽는 데 2일이 걸리는 문장들의 가능한 정수 배치 방법은 4가지가 있습니다.
- 첫 번째 문장에 1, 다음 문장에 3, 마지막 문장에 2가 적혀 있는 경우. 그는 첫째 날에 처음 두 문장(각각 1번과 3번)을 읽고, 둘째 날에 마지막 문장(2번)을 읽습니다.
- 첫 번째 문장에 2, 다음 문장에 1, 마지막 문장에 3이 적혀 있는 경우.
- 첫 번째 문장에 2, 다음 문장에 3, 마지막 문장에 1이 적혀 있는 경우.
- 첫 번째 문장에 3, 다음 문장에 1, 마지막 문장에 2가 적혀 있는 경우.
입력 2
10 5
출력 2
1310354