MOD = 10**9 + 7 N, d, K = map(int,input().split()) dp = [0]*(max(d+1,K+1)) for k in range(1,d+1): dp[k] = 1 for i in range(N-1): s = [0]*(max(d+1,K+1)) for j in range(1,K+1): s[j] = s[j-1] + dp[j] s[j] %= MOD # print(s) new = [0]*(max(d+1,K+1)) for j in range(i+1,K+1): new[j] = s[j-1] - s[max(0,j-d-1)] new[j] %= MOD dp = new[::] print(dp[K])