#include <bits/stdc++.h>
using namespace std;
const int mn = 3e5 + 5;
const int mm = 1e7 + 5;
const int mod = 998244353;
int p, s, r;
long long inv(long long a) {
  int m = mod;
  if (a == 1) return 1;
  return inv(m % a) * (m - m / a) % m;
}
const int U = 15005;
int F[U + 3], Finv[U + 3];
void init() {
  F[0] = 1;
  for (int i = 1; i <= U; i++) F[i] = 1ll * F[i - 1] * i % mod;
  Finv[U] = inv(F[U]);
  for (int i = U; i; i--) Finv[i - 1] = 1ll * Finv[i] * i % mod;
}
int comb(int n, int m) {
  if (m < 0 || m > n || n < 0) return 0;
  return F[n] * 1ll * Finv[n - m] % mod * Finv[m] % mod;
}
int main() {
  init();
  scanf("%d%d%d", &p, &s, &r);
  if (p == 1) {
    puts("1");
    return 0;
  }
  long long ans = 0;
  for (int a1 = r; a1 <= s; a1++) {
    if (a1 * p < s) continue;
    for (int i = 1; i <= p; i++) {
      if (a1 * i + (p - i) * (a1 - 1) < s || i * a1 > s) continue;
      long long sum = 0;
      for (int j = 0; j <= p - i; j++) {
        long long ansu =
            comb(p - i, j) *
            comb(s - j * a1 - i * a1 + p - i - j - 1, p - i - j - 1) % mod;
        if (j & 1) ansu *= -1;
        sum += ansu;
      }
      if (s - i * a1 == 0) sum = 1;
      if (s - i * a1 < 0) sum = 0;
      sum = sum * inv(i) % mod * comb(p - 1, i - 1) % mod;
      ans += sum;
      if (ans >= mod) ans -= mod;
    }
  }
  printf("%lld\n", ans * inv(comb(s - r + p - 1, p - 1)) % mod);
  return 0;
}
