#include <bits/stdc++.h>
using namespace std;
inline int setBit(int N, int pos) { return N = N | (1 << pos); }
inline int resetBit(int N, int pos) { return N = N & ~(1 << pos); }
inline bool checkBit(int N, int pos) { return (bool)(N & (1 << pos)); }
const long long int MOD = 998244353;
inline long long int add(long long int a, long long int b) {
  a += b;
  if (a >= MOD) a -= MOD;
  return a;
}
inline long long int sub(long long int a, long long int b) {
  a -= b;
  if (a < 0) a += MOD;
  return a;
}
inline long long int mul(long long int a, long long int b) {
  a *= b;
  a %= MOD;
  return a;
}
long long int fact[100010], inv[100010];
long long int nCr(int n, int r) {
  if (r > n) return 0;
  long long int ret = mul(inv[r], inv[n - r]);
  ret = mul(ret, fact[n]);
  return ret;
}
long long int f(int n, int k) {
  if (k == 0) return 1;
  return nCr(n + k - 1, n - 1);
}
long long int g(int n, int make, int high) {
  if (n == 0 && make == 0) return 1;
  if (high < 0) return 0;
  if (make < 0) return 0;
  if (high * n < make) return 0;
  if (make == 0) return 1;
  long long int ret = f(n, make);
  for (int i = 1; i <= n; i++) {
    long long int done = i * (high + 1);
    if (done > make) break;
    long long int cur = mul(nCr(n, i), f(n, make - done));
    if (i & 1)
      ret = sub(ret, cur);
    else
      ret = add(ret, cur);
  }
  return ret;
}
long long int exp(int a, int b) {
  if (b == 0) return 1;
  if (b & 1) return mul(a, exp(a, b - 1));
  long long int ret = exp(a, b / 2);
  return mul(ret, ret);
}
long long int I[100010];
int main() {
  fact[0] = inv[0] = I[0] = 1;
  for (int i = 1; i <= 100000; i++)
    fact[i] = mul(fact[i - 1], i), inv[i] = exp(fact[i], MOD - 2),
    I[i] = exp(i, MOD - 2);
  int n, sum, low;
  scanf("%d %d %d", &n, &sum, &low);
  if (n == 1) {
    printf("1\n");
    return 0;
  }
  long long int total = 0;
  long long int ans = 0;
  for (int i = low; i <= sum; i++) {
    total = add(total, f(n - 1, sum - i));
    ans = add(ans, g(n - 1, sum - i, i - 1));
    for (int k = 2; k <= n; k++) {
      if (i * k > sum) break;
      long long int nw = mul(g(n - k, sum - (i * k), i - 1), nCr(n - 1, k - 1));
      nw = mul(nw, I[k]);
      ans = add(ans, nw);
    }
  }
  ans = mul(ans, exp(total, MOD - 2));
  cout << ans << endl;
  return 0;
}
