#include <bits/stdc++.h>
using namespace std;
template <class T>
bool ckmin(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
long long n, sum, lb;
const int MX = 100005;
const long long MOD = 998244353;
long long fact[MX];
long long mpow(long long base, long long exp) {
  if (exp == 0) return 1;
  long long res = mpow(base, exp / 2);
  res *= res;
  res %= MOD;
  if (exp % 2 == 1) {
    res *= base;
    res %= MOD;
  }
  return res;
}
long long inv(long long k) { return mpow(k, MOD - 2); }
long long binom(long long a, long long b) {
  long long res = fact[a];
  res *= inv(fact[b]);
  res %= MOD;
  res *= inv(fact[a - b]);
  res %= MOD;
  return res;
}
long long split(long long a, long long b) { return binom(a + b - 1, b - 1); }
long long getCnt(long long balls, long long boxes, long long cap) {
  if (cap < 0) return (boxes == 0 && balls == 0);
  if (boxes == 0) return (balls == 0);
  long long res = 0;
  for (int i = 0; i < boxes + 1; i++) {
    long long rem = balls + boxes - 1 - i * (cap + 1);
    if (rem < boxes - 1) continue;
    long long fac = (binom(rem, boxes - 1) * binom(boxes, i)) % MOD;
    if (i % 2 == 0)
      res += fac;
    else
      res += MOD - fac;
    res %= MOD;
  }
  return res;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  fact[0] = 1;
  for (int i = 1; i < MX; i++) fact[i] = (fact[i - 1] * i) % MOD;
  cin >> n >> sum >> lb;
  long long ans = 0;
  for (long long numTied = 1; numTied <= n; numTied++) {
    for (long long besScore = lb; besScore <= sum; besScore++) {
      if (numTied * besScore > sum) continue;
      long long val = (inv(numTied) * binom(n - 1, numTied - 1)) % MOD;
      val *= getCnt(sum - numTied * besScore, n - numTied, besScore - 1);
      val %= MOD;
      ans += val;
      ans %= MOD;
    }
  }
  ans *= inv(split(sum - lb, n));
  ans %= MOD;
  return cout << ans << '\n', 0;
  ;
}
