Linux喜欢字符串和圆,现在他把字符串头尾相连围成一个圆,也就是说用这些英文字母围成一个圈。Linux总是想得比较多,他想假设这些字符都是小写字母,和这个字符串长度为N,但是连续相邻字符且相同的字符个数不超过M,他想问这样构造出来的圆会有多少种?如果构造出的两个圆他们通过顺时针或者逆时针旋转能够相同就说他们是一样的,由于这个结果可能会很大,所以希望你的答案模上1000000007
包含多组但是不超过30组
每组数据仅包含2个整数N,M(1<=N<=10^9,1<=M<=10)
对于每组数据,输出方案总数模1000000007后的结果。
1 2 2 1 2 2 2 3 3 1 3 2 3 3 6 2 6 3
26 325 351 351 5200 5850 5876 51050025 51472200