#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
const int maxn = 10000 + 10;
long long mypow(long long x, long long res) {
  if (res == 0) return 1;
  long long cur = mypow(x, res >> 1);
  cur = cur * cur % mod;
  if (res & 1) cur = cur * x % mod;
  return cur;
}
long long fac[maxn], rev[maxn];
void pre() {
  fac[0] = fac[1] = rev[0] = rev[1] = 1;
  for (int i = 2; i < maxn; i++) {
    fac[i] = fac[i - 1] * i % mod;
    rev[i] = ((mod - mod / i * rev[mod % i]) % mod + mod) % mod;
  }
  for (int i = 2; i < maxn; i++) rev[i] = rev[i - 1] * rev[i] % mod;
}
long long C(int m, int n) {
  if (m < n) return 0;
  return fac[m] * rev[n] % mod * rev[m - n] % mod;
}
long long cal(int n, int lim, int s) {
  if (s < 0 || lim == 0) return 0;
  if (n == 0) return s == 0;
  long long ans = 0;
  for (int i = 0; i <= min(n, s / lim); i++) {
    if (i & 1)
      ans = ((ans - C(n, i) * C(s - i * lim + n - 1, n - 1)) % mod + mod) % mod;
    else
      ans = (ans + C(n, i) * C(s - i * lim + n - 1, n - 1)) % mod;
  }
  return ans;
}
int main() {
  pre();
  int p, s, r;
  scanf("%d%d%d", &p, &s, &r);
  if (s == 0) {
    printf("%lld", rev[p] * fac[p - 1] % mod);
    return 0;
  }
  long long ans = 0;
  for (int i = r; i <= s; i++)
    for (int j = 1; j <= p; j++)
      ans = (ans + C(p - 1, j - 1) * cal(p - j, i, s - i * j) % mod * rev[j] %
                       mod * fac[j - 1]) %
            mod;
  ans = ans * mypow(cal(p, s + 1, s - r), mod - 2) % mod;
  printf("%lld", ans);
  return 0;
}
