#include using namespace std; using ll=long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, s, n) for (int i = (s); i < (int)(n); i++) template bool chmin(T& a, T b){if(a > b){a = b; return true;} return false;} template bool chmax(T& a, T b){if(a < b){a = b; return true;} return false;} const long long mod=998244353; const long long mod2=469762049; const long long mod100=1000000007; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,S,K;cin>>N>>S>>K; S-=K*N*(N-1)/2; if(S<0){ cout<<"0\n"; return 0; } ll dp[N+1][S+1]; for(int i=0;i<=N;i++){ for(int j=0;j<=S;j++) dp[i][j]=0; } dp[0][0]=1; for(int i=1;i<=N;i++){ for(int j=0;j<=S;j++){ dp[i][j]+=dp[i-1][j]; if(j-i>=0) dp[i][j]+=dp[i][j-i]; dp[i][j]%=mod100; } } cout<