#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
const int MOD = 998244353;
const int MAXN = 100;
const int MAXSUM = 5000;
const int MAXFAC = MAXSUM + MAXN - 1;
void inc(int &a, int b) {
  if ((a += b) >= MOD) a -= MOD;
}
void dec(int &a, int b) { inc(a, MOD - b); }
int pw(int x, int n) {
  int ret = 1;
  while (true) {
    if (n & 1) ret = (long long)ret * x % MOD;
    if ((n >>= 1) == 0) return ret;
    x = (long long)x * x % MOD;
  }
}
int n, sum, lbound;
int inv[MAXFAC + 1];
int fac[MAXFAC + 1];
int ifac[MAXFAC + 1];
int C(int a, int b) {
  if (b < 0 || b > a) return 0;
  return (long long)fac[a] * ifac[b] % MOD * ifac[a - b] % MOD;
}
int distribute(int a, int b) {
  if (b == 0) return a == 0 ? 1 : 0;
  return C(a + b - 1, b - 1);
}
int solve() {
  inv[1] = 1;
  for (int i = (2); i <= (MAXFAC); ++i)
    inv[i] = (long long)(MOD - MOD / i) * inv[MOD % i] % MOD;
  fac[0] = 1;
  for (int i = (1); i <= (MAXFAC); ++i)
    fac[i] = (long long)fac[i - 1] * i % MOD;
  ifac[0] = 1;
  for (int i = (1); i <= (MAXFAC); ++i)
    ifac[i] = (long long)ifac[i - 1] * inv[i] % MOD;
  int num = 0;
  for (int me = (lbound); me <= (sum); ++me) {
    for (int neq = 0; neq <= n - 1 && (1 + neq) * me <= sum; ++neq) {
      int remscore = sum - (1 + neq) * me, remplayers = n - 1 - neq;
      int ways = 0;
      for (int nerr = 0; nerr <= remplayers && nerr * me <= remscore; ++nerr) {
        int cur = (long long)C(remplayers, nerr) *
                  distribute(remscore - nerr * me, remplayers) % MOD;
        if (nerr % 2 == 0)
          inc(ways, cur);
        else
          dec(ways, cur);
      }
      ways = (long long)ways * C(n - 1, neq) % MOD;
      inc(num, (long long)ways * inv[1 + neq] % MOD);
    }
  }
  int den = distribute(sum - lbound, n);
  return (long long)num * pw(den, MOD - 2) % MOD;
}
void run() {
  scanf("%d%d%d", &n, &sum, &lbound);
  printf("%d\n", solve());
}
int main() {
  run();
  return 0;
}
