#CF431C. k叉树

k叉树

C. k 叉树

每次测试的时间限制:11
内存限制:256256 兆字节

不久前,一个有创造力的学生 Lesha 听了一节关于树的讲座。讲座结束后,Lesha 受到启发,想出了他自己的一棵树,他称之为 k 叉树。

k 叉树是一棵无限的有根树,其中:

  • 每个顶点恰好有 kk 个子节点;
  • 每条边都有一定的权重;
  • 如果观察从一个顶点到其子节点的边(恰好 kk 条边),它们的权重分别为 1,2,3,,k1, 2, 3, \dots, k

下图展示了一棵 33 叉树的一部分。

当 Lesha 的好朋友 Dima 发现这棵树后,他立刻想知道:"从 k 叉树的根出发,总边权之和为 nn(路径上所有边的权重之和),并且至少包含一条权重至少为 dd 的边的路径有多少条?"

帮助 Dima 找到这个问题的答案。由于路径数量可能非常大,请输出其对 10000000071000000007109+710^9 + 7)取模的结果。

输入

一行包含三个空格分隔的整数:n,k,dn, k, d1n,k1001 \le n, k \le 1001dk1 \le d \le k)。

输出

输出一个整数 —— 问题的答案对 109+710^9 + 7 取模的结果。

示例

示例 11

输入:

3 3 2

输出:

3

示例 22

输入:

3 3 3

输出:

1

示例 33

输入:

4 3 2

输出:

6

示例 44

输入:

4 5 2

输出:

7