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