#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 233;
int fac[maxn], inv[maxn];
const int mod = 998244353;
int p, s, r;
void add(int &x, int y) {
  x += y;
  if (x >= mod) x -= mod;
}
void sub(int &x, int y) {
  x -= y;
  if (x < 0) x += mod;
}
int pow_mod(int q, int w) {
  int ret = 1;
  while (w) {
    if (w & 1) ret = 1ll * ret * q % mod;
    q = 1ll * q * q % mod;
    w >>= 1;
  }
  return ret;
}
int rev(int x) { return 1ll * inv[x] * fac[x - 1] % mod; }
int C(int x, int y) {
  if (x < 0 || y < 0) return 0;
  if (x < y) return 0;
  return 1ll * fac[x] * inv[y] % mod * inv[x - y] % mod;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  fac[0] = inv[0] = 1;
  for (int i = 1; i < maxn; i++) {
    fac[i] = 1ll * fac[i - 1] * i % mod;
    inv[i] = pow_mod(fac[i], mod - 2);
  }
  cin >> p >> s >> r;
  if (s == 0) {
    cout << pow_mod(p, mod - 2) << "\n";
    return 0;
  }
  int all = 0;
  int res = 0;
  for (int mx = r; mx <= s; mx++) {
    if (p == 1) {
      if (mx == s) add(all, 1);
    } else
      add(all, C(s - mx + p - 2, p - 2));
    if (mx == 0) {
      continue;
    }
    for (int cnt = 1; cnt <= min(p, s / mx); cnt++) {
      int left = s - cnt * mx;
      int y = p - cnt;
      if (y == 0) {
        if (left == 0) {
          add(res, rev(cnt));
        }
        continue;
      }
      int tmp = 0;
      for (int t = left % mx; t <= left; t += mx) {
        assert((left - t) % mx == 0);
        int times = 1ll * C(y + t - 1, t) * C(y, (left - t) / mx) % mod *
                    C(p - 1, cnt - 1) % mod;
        if (((left - t) / mx) % 2)
          sub(tmp, times);
        else
          add(tmp, times);
      }
      add(res, 1ll * tmp * rev(cnt) % mod);
    }
  }
  cout << 1ll * res * pow_mod(all, mod - 2) % mod << "\n";
  return 0;
}
