#P1359. 花园

花园

【问题描述】

小L有一座环形花园,沿花园的顺时针方向,他把各个花圃编号为1~N(2<=N<=10^15)。他的环形花园每天都会换一个新花样,但他的花园都不外乎一个规则,任意相邻M(2<=M<=5,M<=N)个花圃中有不超过K(1<=K<M)个C形的花圃,其余花圃均为P形的花圃。

例如,N=10,M=5,K=3。则

CCPCPPPPCC 是一种不符合规则的花圃;

CCPPPPCPCP 是一种符合规则的花圃。

请帮小L求出符合规则的花园种数Mod 1000000007 由于请您编写一个程序解决此题。

【输入文件】

一行,三个数N,M,K。

【输出文件】

花园种数Mod 1000000007

【样例输入1】

10 5 3

【样例输出1】

458

【样例输入2】

6 2 1

【样例输出2】

18

【数据规模】

40%的数据中,N<=20;

60%的数据中,M=2;

80%的数据中,N<=10^5。