#include <bits/stdc++.h>
inline long long read() {
  long long x = 0;
  char c = getchar(), f = 1;
  for (; c < '0' || '9' < c; c = getchar())
    if (c == '-') f = -1;
  for (; '0' <= c && c <= '9'; c = getchar()) x = x * 10 + c - '0';
  return x * f;
}
inline void write(long long x) {
  static char buf[20];
  int len = 0;
  if (x < 0) putchar('-'), x = -x;
  for (; x; x /= 10) buf[len++] = x % 10 + '0';
  if (!len)
    putchar('0');
  else
    while (len) putchar(buf[--len]);
}
inline void writesp(long long x) {
  write(x);
  putchar(' ');
}
inline void writeln(long long x) {
  write(x);
  putchar('\n');
}
long long fac[6010], inv[6010];
int p, s, r;
inline long long power(long long a, long long b) {
  long long ans = 1;
  for (; b; b >>= 1, a = a * a % 998244353)
    if (b & 1) ans = ans * a % 998244353;
  return ans;
}
long long C(int n, int m) {
  return (n < 0 || m < 0 || m > n)
             ? 0
             : fac[n] * inv[m] % 998244353 * inv[n - m] % 998244353;
}
long long solve(int n, int s, int mx) {
  if (!n) return !s;
  long long tot = 0;
  for (int i = 0; i <= n; i++)
    if (i & 1)
      tot = (tot + (998244353 - C(n, i)) * C(s - i * (mx + 1) + n - 1, n - 1)) %
            998244353;
    else
      tot = (tot + C(n, i) * C(s - i * (mx + 1) + n - 1, n - 1)) % 998244353;
  return tot;
}
int main() {
  p = read();
  s = read();
  r = read();
  fac[0] = inv[0] = 1;
  for (int i = 1; i <= s + p; i++) {
    fac[i] = fac[i - 1] * i % 998244353;
    inv[i] = power(fac[i], 998244353 - 2);
  }
  long long ans = 0;
  for (int i = r; i <= s; i++)
    for (int j = 1; j * i <= s && j <= p; j++)
      ans = (ans + C(p - 1, j - 1) * solve(p - j, s - i * j, i - 1) %
                       998244353 * power(j, 998244353 - 2)) %
            998244353;
  writeln(ans * power(C(s - r + p - 1, p - 1), 998244353 - 2) % 998244353);
  return 0;
}
