#include <bits/stdc++.h>
using namespace std;
long long poww(long long x, long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = (res * x) % 998244353ll;
    y = y >> 1;
    x = (x * x) % 998244353ll;
  }
  return res;
}
long long p, s, r;
long long fac[100005], inv[100005], num[100005];
long long func(long long, long long, long long),
    calc(long long, long long, long long), C(long long, long long);
int main() {
  cin >> p >> s >> r;
  fac[0] = inv[0] = 1;
  for (int i = 1; i < 10005; i++) {
    num[i] = poww(i, 998244353ll - 2);
    fac[i] = (fac[i - 1] * i) % 998244353ll;
    inv[i] = poww(fac[i], 998244353ll - 2);
  }
  long long ans = 0, div = poww(C(s - r + p - 1, s - r), 998244353ll - 2);
  for (int i = r; i < s + 1; i++) {
    ans = (ans + func(p, s, i));
  }
  cout << (ans * div) % 998244353ll;
}
long long func(long long p, long long s, long long top) {
  long long ans = 0;
  for (int i = 0; i < p; i++) {
    long long rem = s - (i + 1) * top;
    long long left = (p - i - 1);
    if (rem < 0 || left * (top - 1) < rem) continue;
    ans = (ans + num[i + 1] * C(p - 1, i) % 998244353ll * calc(left, rem, top) %
                     998244353ll) %
          998244353ll;
  }
  return ans;
}
long long calc(long long left, long long rem, long long top) {
  long long ans = 0;
  long long p = 1;
  for (int i = 0; i < rem + 1; i++) {
    long long rr = (rem - top * i);
    if (rr < 0) break;
    ans = ((ans + p * C(left, i) * (rr == 0 ? 1 : C(left - 1 + rr, rr))) %
               998244353ll +
           998244353ll) %
          998244353ll;
    p *= -1;
  }
  return ans;
}
long long C(long long x, long long y) {
  return fac[x] * inv[y] % 998244353ll * inv[x - y] % 998244353ll;
}
