#include <bits/stdc++.h>
using ll = long long;
using namespace std;
int const M = 998244353;
ll bp(ll x, ll e) {
  ll y = 1;
  for (; e; e >>= 1) {
    if (e & 1) y = x * y % M;
    x = x * x % M;
  }
  return y;
}
inline int add(int x, int y) { return x + y >= M ? x + y - M : x + y; }
inline int sub(int x, int y) { return x - y >= M ? x - y + M : x - y; }
int mx;
int p, s, r;
int ncr[5501][5501];
int dp[5501], dd[5501];
void calc_ncr() {
  ncr[0][0] = 1;
  for (int i = 1; i <= 5500; ++i) {
    ncr[i][0] = ncr[i][i] = 1;
    for (int j = 1; j < i; ++j)
      ncr[i][j] = add(ncr[i - 1][j - 1], ncr[i - 1][j]);
  }
}
int f(int const n, int const m) {
  if (mx < 0 && n > 0) return 0;
  for (int i = 0; i <= m; ++i) dp[i] = (i <= mx);
  for (int i = 1; i < n; ++i) {
    int sum = 0;
    for (int j = 0; j <= m; ++j) {
      sum = add(sum, dp[j]);
      dd[j] = sum;
      if (j >= mx) sum = sub(sum, dp[j - mx]);
    }
    for (int j = 0; j <= m; ++j) dp[j] = dd[j];
  }
  return dp[m];
}
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  cin >> p >> s >> r;
  int left = s - r;
  calc_ncr();
  int ans = 0;
  int den = ncr[left + p - 1][p - 1];
  for (int best = r; best <= s; ++best) {
    mx = best - 1;
    for (int i = 1; i <= p; ++i) {
      int take = best * i - r;
      if (take <= left && (best > 0 || i == p)) {
        auto v = 1ll * ncr[p - 1][i - 1] * f(p - i, left - take) % M;
        v = 1ll * v * bp(ll(i) * den % M, M - 2) % M;
        ans = add(ans, v);
      }
    }
  }
  cout << ans;
}
