Thầy giáo CàiWinDạo có việc làm thêm là trông trẻ (kid). Hiện tại, thầy giáo đang trông n đứa trẻ. Những đứa trẻ còn nhỏ và vô cùng nghịch ngợm. N đứa trẻ hoàn toàn có thể làm thầy giáo sợ đến phát khóc. Vì thế, thầy giáo sẽ chia n đứa trẻ này thành các nhóm, mỗi nhóm có đúng k hoặc k+1 đứa trẻ, để đảm bảo chúng không ăn hiếp thầy. Các bạn cần tính xem, thầy CàiWinDạo có bao nhiêu cách chia. Hai cách chia nhóm được xem là khác nhau nếu tồn tại một nhóm ở cách chia này khác với tất cả các nhóm của cách chia còn lại. Ví dụ cách chia (1) (2 3) (4) khác (2 1) (3) (4), trong khi (1) (2 3) (4) giống (4) (1) (3 2).
Dữ liệu vào
Gồm 2 số nguyên dương n và k là số trẻ và số trẻ trong một nhóm (1 <= n <= 100000, 1 <= k <= 20).
Dữ liệu ra
Số cách chia nhóm khác nhau. Vì số cách chia có thể rất lớn nên các bạn hãy in ra số dư của nó khi chia cho 10^9 + 7.
Input 1
3 1
Output 1
4
Giải thích
Các cách chia là |(1) (2 3)| , |(1 2) (3)| , |(1 3) (2)| , |(1) (2) (3)|
Input 2
3 2
Output 2
1
Input 3
6 2
Output 3
25