#include <bits/stdc++.h>
using namespace std;
const int MAX = 10005;
const int BASE = 998244353;
int fact[MAX], ifact[MAX], inv[MAX];
int Power(int x, int y) {
  if (!y) return 1;
  int tmp = Power(x, y / 2);
  if (y % 2) return (1LL * (1LL * tmp * tmp) % BASE * x) % BASE;
  return (1LL * tmp * tmp) % BASE;
}
void Preprocess() {
  fact[0] = 1;
  for (int i = 1; i <= 10000; ++i) fact[i] = (1LL * fact[i - 1] * i) % BASE;
  ifact[10000] = Power(fact[10000], BASE - 2);
  for (int i = 10000 - 1; i >= 0; --i)
    ifact[i] = (1LL * ifact[i + 1] * (i + 1)) % BASE;
  for (int i = 1; i <= 10000; ++i) inv[i] = Power(i, BASE - 2);
}
int Comb(int k, int n) {
  if (k > n) return 0;
  return (1LL * (1LL * fact[n] * ifact[k]) % BASE * ifact[n - k]) % BASE;
}
int Calc(int n, int sum, int d) {
  int res = 0;
  for (int i = 0; i <= n; ++i) {
    int numGroup = Comb(i, n);
    int numWay = 0;
    if (sum >= i * (d + 1)) {
      int remain = sum - i * (d + 1);
      numWay = Comb(n - 1, remain + n - 1);
    }
    if (i % 2 == 0)
      res = (res + 1LL * numGroup * numWay % BASE) % BASE;
    else
      res = (res - 1LL * numGroup * numWay % BASE + BASE) % BASE;
  }
  return res;
}
int Solve(int n, int sum, int d) {
  int P = 0;
  for (int i = 1; i <= n; ++i) {
    int A = 0;
    for (int j = d; j * i <= sum; ++j)
      if (i < n)
        A = (A + Calc(n - i, sum - j * i, j - 1) + BASE) % BASE;
      else if (sum - i * j == 0)
        ++A;
    A = (1LL * A * inv[i]) % BASE;
    P = (P + 1LL * A * Comb(i - 1, n - 1) % BASE) % BASE;
  }
  int Q = Comb(n - 1, sum - d + n - 1);
  return 1LL * Power(Q, BASE - 2) * P % BASE;
}
int main() {
  int n, sum, lim;
  Preprocess();
  cin >> n >> sum >> lim;
  cout << Solve(n, sum, lim);
  return 0;
}
