#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
const int maxm = 5e3 + 10;
const int mod = 998244353;
int p, r, s;
const int maxN = 1e5 + 10;
long long fac[maxN], ifac[maxN];
inline long long qpow(long long a, long long x) {
  long long ans = 1;
  for (; x; x >>= 1, a = a * a % mod)
    if (x & 1) ans = ans * a % mod;
  return ans;
}
inline int MOD(int x) { return x < mod ? x : x - mod; }
inline int Mod(int x) { return x < 0 ? x + mod : x; }
inline long long C(int n, int r) {
  if (r < 0 || r > n) return 0;
  return fac[n] * ifac[r] % mod * ifac[n - r] % mod;
}
void pre() {
  int i;
  fac[0] = 1;
  for (i = 1; i < maxN; i++) fac[i] = fac[i - 1] * i % mod;
  ifac[maxN - 1] = qpow(fac[maxN - 1], mod - 2);
  for (i = maxN - 2; ~i; i--) ifac[i] = ifac[i + 1] * (i + 1) % mod;
}
long long calc(int p, int l, int s) {
  if (p < 0 || s < 0) return 0;
  if (!p && s > 0) return 0;
  if (!p && !s) return 1;
  int i;
  long long ans = 0;
  for (i = 0; i <= p; i++)
    ans += (i & 1 ? -1 : 1) * C(p, i) * C(p + s - l * i - 1, s - l * i) % mod;
  return Mod(ans % mod);
}
void solve() {
  int i, j;
  long long ans = 0, down = C(p + s - 1, s);
  for (i = r; i <= s; i++) {
    for (j = 0; j <= p - 1; j++) {
      ans += C(p - 1, j) * calc(p - 1 - j, i, s - i * (j + 1)) % mod *
             qpow(j + 1, mod - 2) % mod;
    }
  }
  for (i = r - 1; ~i; i--) {
    down -= C(p - 1 + s - i - 1, s - i);
  }
  printf("%lld\n", ans % mod * qpow(down, mod - 2) % mod);
}
int main() {
  scanf("%d%d%d", &p, &s, &r);
  pre();
  solve();
  return 0;
}
