#include <bits/stdc++.h>
using namespace std;
const int sz = 5007;
const int p = 998244353;
int a[sz], b[sz], inv[sz];
void init() {
  a[0] = b[0] = 1;
  a[1] = b[1] = inv[1] = 1;
  for (int i = 2; i < sz; i++) {
    inv[i] = 1ll * (p - p / i) * inv[p % i] % p;
    if (inv[i] == 0) printf("%d!!!\n", i);
    a[i] = 1ll * a[i - 1] * i % p;
    b[i] = 1ll * b[i - 1] * inv[i] % p;
  }
}
int C(int n, int m) {
  if (n < m) return 0;
  if (n == 0) return 0;
  return 1ll * a[n] * b[m] % p * b[n - m] % p;
}
int qpow(int x, int y) {
  int ret = 1;
  for (; y; y >>= 1, x = 1ll * x * x % p)
    if (y & 1) ret = 1ll * ret * x % p;
  return ret;
}
int solve(int s, int m, int x) {
  int ret = 0;
  if (s == 0) return 1;
  for (int i = 0; i <= m && i * x <= s; i++) {
    int val = 1ll * C(m, i) * C(s - x * i + m - 1, m - 1) % p;
    ret = (ret + (i & 1 ? p - val : val)) % p;
  }
  return ret;
}
int main() {
  init();
  int n, s, r;
  scanf("%d%d%d", &n, &s, &r);
  int ans = 0;
  for (int x = r; x <= s; x++) {
    if (x * n < s) continue;
    for (int i = 1; i <= n; i++) {
      if (i * x > s || (n - i) * (x - 1) + i * x < s) continue;
      if (i == n) {
        ans = (ans + (i * x == s ? inv[i] : 0)) % p;
        continue;
      }
      ans = (ans + 1ll * solve(s - i * x, n - i, x) * C(n - 1, i - 1) % p *
                       inv[i] % p) %
            p;
    }
  }
  int ny = qpow(C(s - r + n - 1, n - 1), p - 2);
  ans = 1ll * ans * ny % p;
  printf("%d", ans);
}
