Suatu hari, JOI-kun mendapatkan mesin waktu. Ia memutuskan untuk pergi ke Jepang pada abad ke-9. Ia bertemu dengan Kukai, salah satu biksu paling terkenal di Jepang pada masa itu. Sang biksu ingin mengembangkan cara latihan baru.
Latihannya dilakukan sebagai berikut:
- Kukai membaca sutra yang terdiri atas $N$ kalimat. Kalimat-kalimat tersebut memiliki urutan, dan ia harus membacanya sesuai urutan itu.
- Setiap kalimat diberi sebuah bilangan bulat antara $1$ dan $N$, inklusif. Tidak ada dua kalimat berbeda yang diberi bilangan yang sama.
- Ia harus membaca kalimat yang diberi bilangan bulat $i$ ($1 \le i \le N$) pada periode ke-$i$ dari $N$ periode waktu yang membagi satu hari secara merata. Setiap kalimat cukup pendek sehingga ia selalu dapat membaca satu kalimat dalam satu periode.
Kukai ingin membaca seluruh sutra secepat mungkin. Namun, jumlah hari yang diperlukan untuk menyelesaikannya bergantung pada bilangan bulat yang diberikan pada kalimat-kalimat dalam sutra. Kukai meminta JOI-kun menghitung banyaknya cara pemberian bilangan bulat pada kalimat-kalimat yang membuat Kukai memerlukan tepat $K$ hari untuk selesai membaca, jika ia membaca secara optimal.
Tugas
Diberikan banyaknya kalimat $N$ dan sebuah bilangan bulat $K$, hitung banyaknya cara pemberian bilangan bulat pada kalimat-kalimat yang membuat Kukai memerlukan tepat $K$ hari untuk selesai membaca jika ia membaca secara optimal, modulo $1\,000\,000\,007$.
Masukan
Baca data berikut dari masukan standar.
- Baris pertama masukan berisi $N$ dan $K$, dipisahkan oleh satu spasi.
Keluaran
Cetak banyaknya cara pemberian bilangan bulat pada kalimat-kalimat yang membuat Kukai memerlukan tepat $K$ hari untuk selesai membaca jika ia membaca secara optimal, modulo $1\,000\,000\,007$.
Batasan
Semua data masukan memenuhi kondisi berikut.
- $1 \le N \le 100\,000$.
- $1 \le K \le N$.
Subsoal
Terdapat 4 subsoal. Nilai dan batasan tambahan setiap subsoal adalah sebagai berikut:
Subsoal 1 [4 poin]
- $N \le 10$.
Subsoal 2 [20 poin]
- $N \le 300$.
Subsoal 3 [25 poin]
- $N \le 3\,000$.
Subsoal 4 [51 poin]
Tidak ada batasan tambahan.
Contoh
Masukan 1
3 2
Keluaran 1
4
Penjelasan
Terdapat $4$ cara pemberian bilangan bulat pada kalimat-kalimat yang membuatnya memerlukan $2$ hari untuk selesai membaca.
- Kalimat pertama diberi $1$, kalimat berikutnya diberi $3$, dan kalimat terakhir diberi $2$. Ia membaca dua kalimat pertama (masing-masing bernomor $1$ dan $3$) pada hari pertama, dan kalimat terakhir (bernomor $2$) pada hari kedua.
- Kalimat pertama diberi $2$, kalimat berikutnya diberi $1$, dan kalimat terakhir diberi $3$.
- Kalimat pertama diberi $2$, kalimat berikutnya diberi $3$, dan kalimat terakhir diberi $1$.
- Kalimat pertama diberi $3$, kalimat berikutnya diberi $1$, dan kalimat terakhir diberi $2$.
Masukan 2
10 5
Keluaran 2
1310354