#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
int mul(long long a, long long b) { return (a * b) % MOD; }
int fpow(int x, int y) {
  int ret = 1, base = x;
  for (int i = 0; (y >> i); i++) {
    if ((y >> i) & 1) ret = mul(ret, base);
    base = mul(base, base);
  }
  return ret;
}
const int P = 110, S = 5010;
int c[S + P][P];
int calc(int s, int p) {
  if (s < 0) return 0;
  if (p == 0) return s == 0;
  return c[s + p - 1][p - 1];
}
int calc2(int s, int p, int m) {
  if (m < 0) return s == 0 and p == 0;
  int excl = 0;
  for (int i = 1; i <= p; i++) {
    int cur = mul(c[p][i], calc(s - i * (m + 1), p));
    if (i & 1) {
      excl += cur;
      excl %= MOD;
    } else {
      excl = (MOD + excl - cur) % MOD;
      excl %= MOD;
    }
  }
  return (MOD + calc(s, p) - excl) % MOD;
}
int inv(int x) { return fpow(x, MOD - 2); }
int inverse[P];
int main() {
  for (int i = 1; i < P; i++) inverse[i] = inv(i);
  c[0][0] = 1;
  for (int i = 1; i < S + P; i++) {
    c[i][0] = 1;
    for (int j = 1; j < P; j++) c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % MOD;
  }
  int p, s, r;
  scanf("%d %d %d", &p, &s, &r);
  int ans = 0;
  if (r == 0 and s == 0) {
    printf("%d\n", inverse[p]);
    return 0;
  }
  int itotalways = inv(calc(s - r, p));
  for (int x = r; x <= s; x++) {
    for (int t = 0; t <= p - 1 and (t + 1) * x <= s; t++) {
      int rs = s - (t + 1) * x;
      int rp = p - (t + 1);
      int ways = mul(c[p - 1][t], calc2(rs, rp, x - 1));
      int cur = mul(ways, itotalways);
      cur = mul(cur, inverse[t + 1]);
      ans += cur;
      ans %= MOD;
    }
  }
  printf("%d\n", ans);
  return 0;
}
