#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353ll;
long long power(long long b, long long e) {
  if (e == 0) {
    return 1ll;
  }
  long long val = power(b, e / 2ll);
  val = (val * val) % mod;
  if (e % 2ll == 0) {
    return val;
  } else {
    return (val * b) % mod;
  }
}
long long inv(long long v) { return power(v, mod - 2ll); }
long long fact[1000];
long long in[1000];
long long nCr(int n, int r) {
  return (((fact[n] * in[n - r]) % mod) * in[r]) % mod;
}
int P, S, R;
long long dp[5001][101];
long long sum[101];
long long wins = 0, total = 0;
long long lessThan(int p, long long su, long long mini) {
  long long sol = 0;
  for (int i = 1; i <= p; i++) {
    long long tot = long long(i) * mini;
    if (tot > su) break;
    long long v = dp[su - tot][p];
    v *= nCr(p, i);
    v %= mod;
    if (i % 2 == 1) {
      sol += v;
    } else {
      sol -= v;
    }
    v %= mod;
  }
  sol += mod;
  sol % +mod;
  return (dp[su][p] - sol + mod) % mod;
}
int main() {
  scanf("%d %d %d", &P, &S, &R);
  if (P == 1) {
    printf("1\n");
    return 0;
  }
  fact[0] = 1ll;
  in[0] = 1ll;
  for (int i = 1; i < 1000; i++) {
    fact[i] = fact[i - 1] * long long(i);
    fact[i] %= mod;
    in[i] = inv(fact[i]);
  }
  for (int su = 0; su <= S; su++) {
    for (int num = 0; num <= P; num++) {
      long long coun = 0;
      if (su == 0) {
        coun = 1ll;
      } else if (num == 0) {
        coun = 0;
      } else {
        coun = sum[num - 1];
      }
      dp[su][num] = coun;
      sum[num] += coun;
      sum[num] %= mod;
    }
  }
  for (int v = R; v <= S; v++) {
    for (int coun = 1; coun <= P; coun++) {
      long long mult = long long(coun) * long long(v);
      if (mult > S) break;
      long long val = nCr(P - 1, coun - 1) * lessThan(P - coun, S - mult, v);
      val %= mod;
      val *= inv(coun);
      val %= mod;
      wins += val;
    }
    total += dp[S - v][P - 1];
    total %= mod;
  }
  printf("%lld\n", (wins * inv(total)) % mod);
  return 0;
}
