#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f, N = 5500, mod = 998244353;
int r, p, s, ans;
int C[N][N];
int read() {
  int ret = 0, f = 1;
  char c = getchar();
  while (!isdigit(c)) {
    if (c == '-') f = 0;
    c = getchar();
  }
  while (isdigit(c)) ret = ret * 10 + (c ^ 48), c = getchar();
  return f ? ret : -ret;
}
int qpow(int x, int y) {
  int res = 1;
  for (; y; y >>= 1, x = (long long)x * x % mod)
    if (y & 1) res = (long long)res * x % mod;
  return res;
}
int up(int &x, int y) {
  x += y;
  if (x >= mod) x -= mod;
  if (x < 0) x += mod;
}
int upm(int x) { return x >= mod ? x - mod : x; }
void initC() {
  for (int i = 0; i < N; ++i) {
    C[i][0] = C[i][i] = 1;
    for (int j = 1; j < i; ++j) C[i][j] = upm(C[i - 1][j] + C[i - 1][j - 1]);
  }
}
int solve(int n, int k, int s) {
  if (!n) return !s;
  int res = 0;
  for (int i = 0; i <= n && i * (k + 1) <= s; ++i)
    up(res, (long long)(i & 1 ? -1 : 1) * C[n + s - i * (k + 1) - 1][n - 1] *
                C[n][i] % mod);
  return res;
}
int main() {
  initC();
  scanf("%d%d%d", &p, &s, &r);
  for (int i = r; i <= s; ++i)
    for (int j = 1; j <= p && i * j <= s; ++j)
      up(ans, (long long)qpow(j, mod - 2) * solve(p - j, i - 1, s - i * j) %
                  mod * C[p - 1][j - 1] % mod);
  printf("%d\n", (long long)ans * qpow(C[p + s - r - 1][p - 1], mod - 2) % mod);
  return 0;
}
