#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
inline int add(int a, int b) {
  if ((a += b) >= mod) a -= mod;
  return a;
}
inline int dec(int a, int b) {
  if ((a -= b) < 0) a += mod;
  return a;
}
inline int mult(int a, int b) {
  long long t = 1ll * a * b;
  if (t >= mod) t %= mod;
  return t;
}
inline int power(int a, int b) {
  int out = 1;
  while (b) {
    if (b & 1) out = mult(out, a);
    a = mult(a, a);
    b >>= 1;
  }
  return out;
}
int p, s, r, fac[100010], ifac[100010];
inline int C(int a, int b) {
  if (a < b) return 0;
  return mult(fac[a], mult(ifac[b], ifac[a - b]));
}
int main() {
  fac[0] = 1;
  for (int i = 1; i <= 100000; i++) fac[i] = mult(fac[i - 1], i);
  ifac[100000] = power(fac[100000], mod - 2);
  for (int i = 99999; i >= 0; i--) ifac[i] = mult(ifac[i + 1], i + 1);
  scanf("%d%d%d", &p, &s, &r);
  if (p == 1) {
    puts("1");
    return 0;
  }
  int ans = 0, tot = C(s - r + p - 1, p - 1);
  for (int i = r; i <= s; i++) {
    for (int j = 0; j < p; j++) {
      int sum = s - (j + 1) * i, peo = p - 1 - j, cur = 0;
      if (!peo) {
        cur = (sum == 0);
        ans = add(ans, mult(cur, power(j + 1, mod - 2)));
        break;
      }
      if (sum < 0) break;
      for (int l = 0; l <= peo; l++) {
        if (l * i > sum) break;
        if (l == peo) {
          if (l & 1)
            cur = dec(cur, 1);
          else
            cur = add(cur, 1);
          break;
        }
        if (l & 1)
          cur = dec(cur,
                    mult(C(peo, l), C(sum - l * i + peo - l - 1, peo - l - 1)));
        else
          cur = add(cur,
                    mult(C(peo, l), C(sum - l * i + peo - l - 1, peo - l - 1)));
      }
      ans = add(ans, mult(cur, power(j + 1, mod - 2)));
    }
  }
  printf("%d\n", mult(ans, power(tot, mod - 2)));
  return 0;
}
