#include //#include using namespace std; //using namespace atcoder; const static int NIL = -1; const long long INF = 1LL << 60; typedef long long ll; typedef unsigned long long ull; bool is_debug = false; int ini = 1000000001; ll mod = 1000000007; int main(){ int n, s, k; cin >> n >> s >> k; for(int i = 0; i < n; i++){ s -= i * k; } if(s < 0){ cout << 0 << endl; return 0; } int m = n; n = s; vector> dp(m + 1, vector(n + 1, 0)); dp[0][0] = 1; for(int i = 1; i <= m; i++){ for(int j = 0; j <= n; j++){ if(j - i >= 0){ dp[i][j] = (dp[i][j - i] + dp[i - 1][j]) % mod; }else{ dp[i][j] = dp[i - 1][j]; } } } cout << dp[m][n] << endl; }