Problem2169--k串

2169: k串

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 57  Solved: 24
[Status] [Submit] [Creator:]

Description

给定一个整数 k,对于一个 01 字符串(01字符串指的是:该字符串仅能由字符 '1' 或 '0' 构成),如果其满足如下条件,则我们称这个字符串为一个”k串”:

A.字符串中存在长度为 k 的子串,该子串中的连续 k 个字符均为 '1'。
B.选择将字符串中连续的k个字符'1'均修改为 '0',存在一种方案使字符串经过若干轮操作之后所有的 n 个字符均变为 '0'。
C.特别的,如果这个字符串原本只有'0',它属于任何k串。

如"1111"是一个长度为4的2串,这个字符串存在连续2个'1',经过2次B的操作,n个字符均变为'0'。
如"111"不是长度为3的2串,虽然这个字符串存在连续2个'1',但没有办法通过B操作让n个字符均变为'0'。


求:长度为 n 的k串有多少个?由于好串数量可能很大,所以你只需要输出长度为 n 的 k串个数除以 10007 的余数即可。

Input

输入共一行,包含两个整数 k 和 n,以一个空格分隔(1 ≤ k,n ≤ 100000)。

Output

输出一个整数,为长度为 n 的 k串数量除以 10007 的余数。

Sample Input Copy

【样例输入1】
1 3
【样例输出1】
8
【样例输入2】
2 3
【样例输出2】
3

HINT

样例解释:
· 样例1:长度为 3 的 1串有 8 个,它们分别是:"000"、"001"、"010"、"011"、"100"、"101"、"110"、"111"
· 样例2:长度为 3 的 2串有 3 个,它们分别是:"000"、"011"、"110"

Source/Category