N,S,K=map(int,input().split()) S=S-(K*N*(N-1)//2)+1 if S<=0: print(max(0,S+1)) exit() mod=10**9+7 DP=[[0]*(S+1) for i in range(N+1)] DP[0][0]=1 k=0 for i in range(N): for j in range(S): k=j while k<=S: DP[i+1][k]=(DP[i+1][k]+DP[i][j])%mod k+=N-i print(DP[-1][-1])