func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 5, mod = 998244353;   int inv[N], fac[N];   int ksm(int b, int n) {     int res = 1;     while (n) {       if (n & 1) res = 1ll * res * b % mod;       b = 1ll * b * b % mod;       n >>= 1;     }     return res;   }   void init(int n) {     fac[0] = 1;     for (int i = 1; i <= n; ++i) fac[i] = 1ll * fac[i - 1] * i % mod;     inv[n] = ksm(fac[n], mod - 2);     for (int i = n - 1; i >= 0; --i) inv[i] = 1ll * (i + 1) * inv[i + 1] % mod;   }   int C(int n, int m) {     if (n < m || n < 0 || m < 0) return 0;     return 1ll * fac[n] * inv[m] % mod * inv[n - m] % mod;   }   int calc(int n, int m, int lim) {     if (n == 0) return 1;     if (n < 0) return 0;     int ans = 0;     for (int i = 0; i <= m; ++i) {       int tmp = 1ll * C(n - lim * i + m - 1, m - 1) * C(m, i) % mod;       if (i & 1)         ans = (ans + mod - tmp) % mod;       else         ans = (ans + tmp) % mod;     }     return ans;   }   signed main() {     int p, s, r, ans = 0;     cin >> p >> s >> r;     init(1e5);     for (int i = r; i <= s; ++i)       for (int j = 1; j <= p; ++j) {         if (i * j + (p - j) * (i - 1) < s) continue;         int tmp = 1ll * calc(s - j * i, p - j, i) * C(p - 1, j - 1) % mod;         ans = (ans + 1ll * tmp * ksm(j, mod - 2)) % mod;       }     cout << 1ll * ans * ksm(C(s - r + p - 1, p - 1), mod - 2) % mod;   }   