#include <bits/stdc++.h>
const int md = 998244353;
inline int add(int a, int b) {
  a += b;
  if (a >= md) a -= md;
  return a;
}
inline int sub(int a, int b) {
  a -= b;
  if (a < 0) a += md;
  return a;
}
inline int mul(int a, int b) { return (long long)a * b % md; }
inline int po(int a, int b) {
  int r = 1;
  while (b) {
    if (b & 1) r = mul(r, a);
    a = mul(a, a);
    b >>= 1;
  }
  return r;
}
inline int inv(int a) { return po(a, md - 2); }
inline int di(int a, int b) { return mul(a, inv(b)); }
const int N = 100;
const int V = 5000;
int fact[N + V + 1], factinv[N + V + 1];
int n, s, t;
void fact_init() {
  fact[0] = factinv[0] = 1;
  for (int i = 1; i <= N + V; ++i) {
    fact[i] = mul(fact[i - 1], i);
    factinv[i] = inv(fact[i]);
  }
}
inline int nCr(int n, int r) {
  return mul(fact[n], mul(factinv[r], factinv[n - r]));
}
int get(int sum, int amt, int bound) {
  if (!amt) return !sum;
  int res = 0;
  for (int i = 0; i <= amt && bound * i <= sum; ++i) {
    int r = mul(nCr(amt, i), nCr(sum - bound * i + amt - 1, amt - 1));
    if (i & 1) r = sub(0, r);
    res = add(res, r);
  }
  return res;
}
int main() {
  fact_init();
  scanf("%d%d%d", &n, &s, &t);
  int ans = 0;
  int den = 0;
  for (int i = t; i <= s; ++i) {
    int r = 0;
    for (int j = 1; j <= n && s >= i * j; ++j)
      r = add(r, di(mul(get(s - i * j, n - j, i), nCr(n - 1, j - 1)), j));
    ans = add(ans, r);
    if (n - 2 >= 0)
      den = add(den, nCr(n - 2 + s - i, n - 2));
    else
      den = add(den, !(s - i));
  }
  ans = di(ans, den);
  printf("%d\n", ans);
  return 0;
}
