Vì An là một người rất biếng ăn nên mẹ của An đã lên lịch trình và chuẩn bị sẵn \(N\) khẩu phần ăn khác nhau, được đánh số thứ tự từ \(1\) đến \(N\) và yêu cầu An phải ăn đúng theo thứ tự đó.
Thời gian của mỗi ngày đều được chia đều thành \(N\) khung thời gian đánh số từ \(1\) đến \(N\). Để tăng tính hấp dẫn của món ăn, mẹ đã viết lên các khẩu phần một số nguyên là khung thời gian duy nhất mà An có thể ăn khẩu phần đó. Không có hai khẩu phần nào có trùng số.
Trong một ngày, thời gian trôi lần lượt qua các khung \(1,2,\dots,N\). Nếu khẩu phần ăn tiếp theo có số trùng với khung giờ hiện tại thì An có thể chọn ăn nó. Nếu không thể ăn trong ngày thì An sẽ chờ qua ngày sau khi khung thời gian về lại \(1\).
Cho hai số \(N\) và \(K\). Hãy đếm số cách gán các số \(1..N\) cho \(N\) khẩu phần sao cho trong phương án hoàn thành \(N\) khẩu phần sớm nhất thì An tốn đúng \(K\) ngày. In kết quả theo modulo \(10^9+7\).
\InputFile
Dòng duy nhất chứa hai số nguyên \(N\) và \(K\). (\(1 \le N,K \le 10^5\))
\OutputFile
In ra một số nguyên là kết quả của bài toán theo modulo \(10^9+7\).
\Scoring
- Subtask 1 (\(15\%\) số điểm): \(N \le 10\).
- Subtask 2 (\(20\%\) số điểm): \(N \le 300\).
- Subtask 3 (\(30\%\) số điểm): \(N \le 3000\).
- Subtask 4 (\(35\%\) số điểm): Không có ràng buộc bổ sung.
Example
Test 1
Input
3 2
Output
4
Note
Giải thích:
Ta có \(4\) cách đánh số sau:
- [1,3,2] An ăn khẩu phần 1,2 vào ngày 1 và khẩu phần 3 vào ngày 2
- [2,3,1] An ăn khẩu phần 1,2 vào ngày 1 và khẩu phần 3 vào ngày 2
- [3,1,2] An ăn khẩu phần 1 vào ngày 1 và khẩu phần 2,3 vào ngày 2
- [2,1,3] An ăn khẩu phần 1 vào ngày 1 và khẩu phần 2,3 vào ngày 2
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.