N, d, K = map(int, input().split()) mod = 10**9 + 7 dp = [0]*(K+2) dp[0] = 1 for _ in range(N): dp2 = [0] * (K+2) for i in range(K, -1, -1): dp2[min(i+1, K+1)] += dp[i] dp2[min(i+d+1, K+1)] -= dp[i] for i in range(1, K+2): dp2[i] = (dp2[i] + dp2[i-1])%mod dp = dp2 print(dp2[K])