#include <bits/stdc++.h>
using namespace std;
void upd(int &x, int y) { x = x + y < 998244353 ? x + y : x + y - 998244353; }
int dp[100 + 5][5100 + 5];
long long qp(long long a, int k) {
  long long ans = 1;
  while (k) {
    if (k & 1) ans = ans * a % 998244353;
    a = a * a % 998244353;
    k >>= 1;
  }
  return ans;
}
void solve(int N, int S, int upp) {
  S += N;
  dp[0][0] = 1;
  for (int p = 1; p <= N; p++)
    for (int s = 1; s <= S; s++) {
      dp[p][s] = dp[p][s - 1];
      upd(dp[p][s], dp[p - 1][s - 1]);
      if (s - upp - 1 >= 0) upd(dp[p][s], 998244353 - dp[p - 1][s - upp - 1]);
    }
}
long long fac[5100 + 5], inv[5100 + 5], ifac[5100 + 5];
long long C(long long n, long long m) {
  return fac[n] * ifac[m] % 998244353 * ifac[n - m] % 998244353;
}
int main() {
  fac[0] = ifac[0] = 1;
  inv[1] = 1;
  for (int i = 1; i <= 5100; i++) fac[i] = fac[i - 1] * i % 998244353;
  for (int i = 2; i <= 5100; i++)
    inv[i] = inv[998244353 % i] * (998244353 - 998244353 / i) % 998244353;
  for (int i = 1; i <= 5100; i++) ifac[i] = ifac[i - 1] * inv[i] % 998244353;
  int p, s, r;
  scanf("%d%d%d", &p, &s, &r);
  int ans = 0;
  for (int i = r; i <= s; i++) {
    if (i > s - i) {
      if (p == 1)
        upd(ans, s - i == 0);
      else
        upd(ans, C(s - i + p - 2, p - 2));
      continue;
    }
    solve(p - 1, s - i, i);
    for (int num = 0; num <= p - 1 && num * i <= s - i; num++) {
      long long tmp = dp[p - 1 - num][s - i - num * i + p - 1 - num] *
                      qp(num + 1, 998244353 - 2) % 998244353;
      tmp = tmp * C(p - 1, num) % 998244353;
      upd(ans, tmp);
    }
  }
  ans = ans * qp(C(s - r + p - 1, p - 1), 998244353 - 2) % 998244353;
  printf("%d\n", ans);
  return 0;
}
