#include <bits/stdc++.h>
using namespace std;
const long long mod7 = 998244353;
inline long long add(long long v1, long long v2, long long mod = mod7) {
  v1 += v2;
  if (v1 >= mod) v1 -= mod;
  if (v1 < 0) v1 += mod;
  return v1;
}
inline long long mul(long long v1, long long v2, long long mod = mod7) {
  return v1 * v2 % mod;
}
inline long long mypow(long long v, long long t, long long mod = mod7) {
  long long res = 1;
  while (t) {
    if (t & 1) res = res * v % mod;
    v = v * v % mod;
    t >>= 1;
  }
  return res;
}
inline void bye() {
  puts("");
  exit(0);
}
const int N = 10101;
long long fac[N], ifac[N];
long long re[N];
int n, s, r;
void init() { scanf("%d %d %d", &n, &s, &r); }
void build() {
  fac[0] = 1;
  for (int i = 1; i < N; i++) fac[i] = mul(fac[i - 1], i);
  ifac[N - 1] = mypow(fac[N - 1], mod7 - 2);
  for (int i = N - 2; i >= 0; i--) ifac[i] = mul(ifac[i + 1], i + 1);
  for (int i = 1; i < N; i++) re[i] = mypow(i, mod7 - 2);
}
long long C(int v1, int v2) {
  if (v1 < v2) return 0LL;
  if (v1 < 0 || v2 < 0) return 0LL;
  long long res = mul(fac[v1], mul(ifac[v2], ifac[v1 - v2]));
  return res;
}
long long val(int a, int b, int c) {
  if (b == 0) {
    if (c) {
      return 1LL;
    } else {
      return a ? 0LL : 1LL;
    }
  }
  if (a == 0) return 0LL;
  long long res = 0, d = 1;
  for (int i = 0; i <= a; i++) {
    long long v = mul(C(a, i), C(b - c * i + a - 1, a - 1));
    v = mul(v, d);
    res = add(res, v);
    d = -d;
  }
  return res;
}
void solve() {
  long long an = 0;
  for (int i = r; i <= s; i++) {
    for (int j = 1; j * i <= s && j <= n; j++) {
      long long v = val(n - j, s - j * i, i);
      v = mul(v, mul(re[j], C(n - 1, j - 1)));
      an = add(an, v);
    }
  }
  an = mul(an, mypow(C(n - 1 + s - r, s - r), mod7 - 2));
  printf("%lld\n", an);
}
int main() {
  init();
  build();
  solve();
  return 0;
}
