#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 1) + (x << 3) + c - '0';
    c = getchar();
  }
  return x * f;
}
const long long mod = 998244353;
const long long maxn = 1e2 + 10;
const long long maxm = 5e3 + 105;
long long c[maxm][maxm];
long long inv[maxm], p, s, l, ans;
inline long long C(long long x, long long y) {
  if (x < 0 || y < 0 || x > y) return 0;
  return c[x][y];
}
inline long long calc(long long x, long long y, long long z) {
  if (y == 0) return 1;
  if (y < 0) return 0;
  long long res = 0;
  for (long long i = 0; i <= x; i++)
    res = (res + ((i & 1) ? 998244352 : 1) * C(i, x) % mod *
                     C(x - 1, y - i * z + x - 1) % mod) %
          mod;
  return res;
}
inline long long ksm(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return res;
}
signed main() {
  p = read(), s = read(), l = read();
  c[0][0] = inv[1] = 1;
  for (long long i = 1; i < maxm; i++) c[0][i] = 1;
  for (long long i = 1; i < maxm; i++)
    for (long long j = i; j < maxm; j++)
      c[i][j] = (c[i - 1][j - 1] + c[i][j - 1]) % mod;
  for (long long i = 2; i < maxm; i++)
    inv[i] = (mod - mod / i) * inv[mod % i] % mod;
  for (long long i = l; i <= s; i++)
    for (long long j = 1; j <= p; j++) {
      if (i * j + (i - 1) * (p - j) < s) continue;
      ans = (ans +
             calc(p - j, s - i * j, i) * c[j - 1][p - 1] % mod * inv[j] % mod) %
            mod;
    }
  printf("%lld\n",
         (ans * ksm(c[p - 1][s - l + p - 1], mod - 2) % mod + mod) % mod);
  return 0;
}
