#include <bits/stdc++.h>
const int inf = 1e9;
int fact[10005], inv[10005];
int po(int b, int e) {
  int p = 1;
  while (e) {
    if (e % 2 == 1) p = 1LL * p * b % 998244353;
    b = 1LL * b * b % 998244353;
    e = e / 2;
  }
  return p;
}
int comb(int n, int k) {
  if (n < k) return 0;
  int p = fact[n];
  p = 1LL * p * inv[k] % 998244353;
  p = 1LL * p * inv[n - k] % 998244353;
  return p;
}
int cinv(int num) { return po(num, 998244353 - 2); }
int calc(int sum, int nr, int maxi) {
  if (sum == 0 && nr == 0) return 1;
  if (nr == 0) return 0;
  if (maxi < 0) return 0;
  int i, ans = 0;
  for (i = 0; i <= nr; i++) {
    if (i * (maxi + 1) > sum) break;
    if (i % 2 == 0)
      ans = (1LL * ans +
             1LL * comb(nr, i) *
                 comb(sum - i * (maxi + 1) % 998244353 + nr - 1, nr - 1)) %
            998244353;
    else
      ans = (1LL * ans -
             1LL * comb(nr, i) * comb(sum - i * (maxi + 1) + nr - 1, nr - 1) %
                 998244353 +
             998244353) %
            998244353;
  }
  return ans;
}
int main() {
  int p, s, r;
  scanf("%d%d%d", &p, &s, &r);
  int i;
  fact[0] = 1;
  for (i = 1; i <= 10000; i++) fact[i] = 1LL * fact[i - 1] * i % 998244353;
  inv[10000] = po(fact[10000], 998244353 - 2);
  for (i = 9999; i >= 0; i--) inv[i] = 1LL * inv[i + 1] * (i + 1) % 998244353;
  int scor, cntm, sum = 0;
  for (scor = r; scor <= s; scor++) {
    for (cntm = 1; cntm <= p; cntm++) {
      if (cntm * scor > s) break;
      int aux = comb(p - 1, cntm - 1);
      aux = 1LL * aux * cinv(cntm) % 998244353;
      aux = 1LL * aux * calc(s - scor * cntm, p - cntm, scor - 1) % 998244353;
      sum = (1LL * sum + aux) % 998244353;
    }
  }
  sum = 1LL * sum * po(comb(s - r + p - 1, p - 1), 998244353 - 2) % 998244353;
  printf("%d\n", sum);
  return 0;
}
