#include <bits/stdc++.h>
using namespace std;
long long fast(long long a, long long b) {
  if (a == 0) return 0;
  long long res = 1;
  while (b) {
    if (b & 1) res = res * a % 998244353;
    a = a * a % 998244353;
    b >>= 1;
  }
  return res;
}
long long frac[20005], inv[20005];
void init() {
  frac[1] = frac[0] = 1;
  for (long long i = 2; i < 20005; i++) frac[i] = frac[i - 1] * i % 998244353;
  inv[20005 - 1] = fast(frac[20005 - 1], 998244353 - 2);
  for (long long i = 20005 - 2; i >= 0; i--)
    inv[i] = inv[i + 1] * (i + 1) % 998244353;
}
long long C(long long a, long long b) {
  if (a == b) return 1;
  if (b < 0 || b > a) return 0;
  return frac[a] * inv[b] % 998244353 * inv[a - b] % 998244353;
}
long long cal(long long s, long long p, long long m) {
  long long res = 0;
  for (long long i = 0; i <= p; i++) {
    res += (((i & 1 ? 998244353 - 1 : 1) *
             (C(p, i) % 998244353 * C(s + p - 1 - i * (m + 1), p - 1) %
              998244353) %
             998244353) +
            998244353) %
           998244353;
    res %= 998244353;
  }
  return res;
}
signed main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  init();
  long long p, s, r;
  cin >> p >> s >> r;
  long long ans = 0;
  long long tmp2 = fast(C(s - r + p - 1, p - 1), 998244353 - 2);
  for (long long t = r; t <= s; t++) {
    for (long long q = 1; q <= p; q++) {
      long long tmp1 = cal(s - q * t, p - q, t - 1);
      ans += C(p - 1, q - 1) % 998244353 * fast(q, 998244353 - 2) % 998244353 *
             tmp1 % 998244353;
      ans %= 998244353;
    }
  }
  cout << ans * tmp2 % 998244353 << '\n';
  return 0;
}
