import sys sys.setrecursionlimit(10 ** 6) def main(): def dfs(n, s): # global N, MOD rst = 0 tmp = s if n == N - 1: rst += s // 2 + 1 elif dp[n][s] >= 0: return dp[n][s] else: while s >= 0: rst += dfs(n + 1, s) rst %= MOD s -= (N - (n - 1)) dp[n][tmp] = rst return rst N, S, K = map(int, input().split()) MOD = 10 ** 9 + 7 init = (N * (N - 1) * K) // 2 if S < init: print(0) else: S -= init dp = [[-1] * (S + 1) for _ in range(N + 1)] rst = dfs(1, S) print(rst) main()