Quite recently a creative student Lesha had a lecture on trees. After the lecture Lesha was inspired and came up with the tree of his own which he called a *k*-tree.

A *k*-tree is an infinite rooted tree where:
 -  each vertex has exactly *k* children; -  each edge has some weight; -  if we look at the edges that goes from some vertex to its children (exactly *k* edges), then their weights will equal 1, 2, 3, ..., *k*. 
The picture below shows a part of a 3-tree.

 

 <img class="tex-graphics" src="https://espresso.codeforces.com/61ac5ac17c4d2f220968eff8fb59bb3c8dc77edf.png" style="max-width: 100.0%;max-height: 100.0%;"/>

 

Help Dima find an answer to his question. As the number of ways can be rather large, print it modulo 1000000007 (10<sup class="upper-index">9</sup> + 7).
A single line contains three space-separated integers: *n*, *k* and *d* (1 ≤ *n*, *k* ≤ 100; 1 ≤ *d* ≤ *k*).
import sys
import math
import bisect
import heapq
import itertools
from itertools import accumulate
from sys import stdin,stdout
from math import gcd,floor,sqrt,log, ceil,inf
from collections import defaultdict, Counter, deque
import heapq
from bisect import bisect_left,bisect_right, insort_left, insort_right
mod=1000000007
def get_ints(): return map(int, sys.stdin.readline().strip().split())
def get_list(): return list(map(int, sys.stdin.readline().strip().split()))
def get_string(): return sys.stdin.readline().strip()
def get_int(): return int(sys.stdin.readline().strip())
def get_list_strings(): return list(map(str, sys.stdin.readline().strip().split()))
 
def solve():
    n,k,d = get_ints()
    memo = defaultdict(int)
    def dp(target,isd):
        if target == 0:
            if isd: return 1
            else: return 0
        state = (target,isd)
        if state not in memo:
            ans = 0
            for i in range(1,k+1):
                if i >= d: isd = True
                if target - i >=0:
                    memo[state] += dp(target-i,isd) % mod

        return memo[state] % mod
    return dp(n,False) % mod
            

        
            


 
    
 
 
 
 
 
if __name__ == "__main__":
        print(solve())