# import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') from itertools import * from functools import * import sys input = sys.stdin.readline N,S,K = map(int,input().split()) mod = 10**9 + 7 T = S - K*N*(N-1)//2 if T < 0: print(0) exit() dp = [[0]*(T+2) for _ in range(N+1)] dp[0][0] = 1 for i in range(N): m = N - i X = [[] for _ in range(m)] for j in range(T+1): X[j%m].append(dp[i][j]) for j in range(m): X[j] = list(accumulate(X[j])) for j in range(T+1): s,t = divmod(j,m) dp[i+1][j] = X[t][s] dp[i+1][j] %= mod print(dp[-1][T])