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