import sys sys.setrecursionlimit(10 ** 6) def dfs(n, s): global N, MOD rst = 0 tmp = s if n == N - 1: rst += s // 2 + 1 elif (n, s) in dp: 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 = {} rst = dfs(1, S) print(rst)