#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; using vb = vector; using vvb = vector; using vd = vector; using vs = vector; using pii = pair; using pll = pair; using pdd = pair; using vpii = vector; using vpll = vector; using vpdd = vector; const int inf = 1 << 30; const ll INF = 1LL << 60; const int MOD = 1000000007; //const int MOD = 998244353; int main() { int n, s, k; cin >> n >> s >> k; int sum = n * (n - 1) * k / 2; int m = s - sum; if (m < 0) { cout << 0 << endl; return 0; } vvi dp(n + 1, vi(m + 1, 0)); dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= m; j++) { if (j - i >= 0) { dp[i][j] = dp[i - 1][j] + dp[i][j - i]; dp[i][j] %= MOD; } else { dp[i][j] = dp[i - 1][j]; } } } cout << dp[n][m] << endl; return 0; }