#include <bits/stdc++.h>
const long long N = 2e5 + 7, mod = 998244353;
typedef long long aN[N];
aN ny, jc, njc;
long long readll() {
  long long x = 0, w = 1;
  int c = getchar();
  for (; c < '0' || c > '9'; c - '-' || (w = -w), c = getchar())
    ;
  for (; c >= '0' && c <= '9'; x = x * 10 + (c ^ 48), c = getchar())
    ;
  return x * w;
}
int readchar(int l = '0', int r = 'z') {
  int c = getchar();
  for (; c < l || c > r; c = getchar())
    ;
  return c;
}
long long C(long long n, long long m) {
  return n < 0 || n > m ? 0 : jc[m] * njc[n] % mod * njc[m - n] % mod;
}
long long nC(long long n, long long m) {
  return n < 0 || n > m ? 0 : njc[m] * jc[n] % mod * jc[m - n] % mod;
}
long long calc(long long n, long long m, long long r) {
  if (!n) return !m;
  long long sum = 0;
  for (register long long i = 0; i <= n; i++) {
    if (i * r > m) break;
    sum = (sum + (i & 1 ? mod - 1 : 1) * C(i, n) % mod *
                     C(n - 1, m - i * r + n - 1)) %
          mod;
  }
  return sum;
}
int main() {
  long long p = readll(), s = readll(), r = readll(), sum = 0;
  ny[1] = jc[0] = jc[1] = njc[0] = njc[1] = 1;
  for (register long long i = 2; i <= 6500; i++)
    jc[i] = jc[i - 1] * i % mod,
    njc[i] = njc[i - 1] * (ny[i] = (mod - mod / i) * ny[mod % i] % mod) % mod;
  for (register long long i = r; i <= s; i++)
    for (register long long j = 1; j <= p; j++) {
      if (i * j > s) break;
      sum = (sum + ny[j] * C(j - 1, p - 1) % mod * calc(p - j, s - i * j, i)) %
            mod;
    }
  printf("%lld\n", sum * nC(p - 1, s - r + p - 1) % mod);
  return 0;
}
