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