def solve(N, S): global dp mod = 10**9 + 7 if S < 0: return 0 if S == 0: return 1 dp = [[-1] * (S + 1) for i in range(N + 1)] for n in range(N + 1): dp[n][0] = 1 for s in range(S + 1): dp[1][s] = 1 return dfs(N, S, mod) def dfs(n, s, mod): global dp if dp[n][s] != -1: return dp[n][s] dp[n][s] = sum(dfs(n-1, ss, mod) for ss in range(s, -1, -n)) % mod return dp[n][s] N, S, K = map(int, input().split()) S -= N * (N-1) * K // 2 print(solve(N, S))