#include <bits/stdc++.h>
using namespace std;
const long long inv2 = (998244353 + 1) / 2;
long long a[1000005], d, b[1000005], c[1000005], ans;
long long f[1000005], nf[1000005], inv[1000005];
int n, r, s;
long long pow_(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % 998244353;
    x = x * x % 998244353;
    y >>= 1;
  }
  return res;
}
long long C(long long x, long long y) {
  return f[x] * nf[y] % 998244353 * nf[x - y] % 998244353;
}
long long calc(long long n, long long b, long long sum) {
  if (sum < 0) return 0;
  if (n == 0) return (sum == 0);
  if (b == 0) return 0;
  long long res = 0;
  for (int i = 0; i <= min(n, sum / b); i++) {
    if (i & 1)
      (res -= C(n, i) * C(sum - i * b + n - 1, n - 1) % 998244353) %= 998244353;
    else
      (res += C(n, i) * C(sum - i * b + n - 1, n - 1)) %= 998244353;
  }
  return (res + 998244353) % 998244353;
}
int main() {
  inv[1] = 1;
  for (int i = 2; i < 1000005; i++)
    inv[i] = 998244353 - (998244353 / i) * inv[998244353 % i] % 998244353;
  f[0] = nf[0] = 1;
  for (int i = 1; i < 1000005; i++)
    f[i] = f[i - 1] * i % 998244353, nf[i] = nf[i - 1] * inv[i] % 998244353;
  scanf("%d%d%d", &n, &s, &r);
  if (s == 0) {
    printf("%lld\n", inv[n]);
    return 0;
  }
  for (int i = r; i <= s; i++) {
    for (int j = 1; j <= n; j++) {
      long long ret = calc(n - j, i, s - j * i) * C(n - 1, j - 1) % 998244353;
      (ans += ret * inv[j]) %= 998244353;
    }
  }
  ans = ans * pow_(calc(n, s + 1, s - r), 998244353 - 2) % 998244353;
  printf("%lld\n", ans);
  return 0;
}
