import sys import math from collections import deque import copy MOD = 10 ** 9 + 7 N, S, K = map(int, input().split()) if N*K*N/2 > S: print(0) sys.exit() dp = [[0 for _ in range(S + 10)] for _ in range(N + 10)] dp[0] = [0 for _ in range(S + 10)] for i in range(S + 10): if i * K * N >= S + 5: break dp[0][i * K * N] = 1 for i in range(1, N): for l in range(S + 1): if l - K * (N - i) >= 0: dp[i][l] = (dp[i][l - (N - i)] + dp[i - 1][l - K * (N - i)]) % MOD elif l - (N - i) >= 0: dp[i][l] = dp[i - 1][l - K * (N - i)] % MOD print(dp[N - 1][S]%MOD)