#include <bits/stdc++.h>
using namespace std;
int C[102 + 5002][102 + 5002];
int dp[102][5002], sum[2][5002];
int Mod(int x) {
  if (x < 0) x += 998244353;
  if (x >= 998244353) x -= 998244353;
  return x;
}
int invMod(int x) {
  int p = x, ret = 1, e = 998244353 - 2;
  for (int i = 0; (1 << i) <= e; ++i, p = (1LL * p * p) % 998244353)
    if (e & (1 << i)) ret = (1LL * ret * p) % 998244353;
  return ret;
}
void compDp(int n, int r, int s) {
  dp[0][0] = 1;
  for (int i = 0; i <= s; ++i) sum[0][i] = 1;
  for (int i = 1, t = 0; i < n; ++i, t = !t) {
    sum[!t][0] = dp[i][0] = 1;
    for (int j = 1; j <= s; ++j) {
      if (j >= r)
        dp[i][j] = Mod(sum[t][j] - sum[t][j - r]);
      else
        dp[i][j] = sum[t][j];
      sum[!t][j] = Mod(sum[!t][j - 1] + dp[i][j]);
    }
  }
}
void compC(int N) {
  C[0][0] = 1;
  for (int i = 1; i <= N; ++i) {
    C[i][0] = C[i][i] = 1;
    for (int j = 1; j < i; ++j) C[i][j] = Mod(C[i - 1][j] + C[i - 1][j - 1]);
  }
}
int g(int s, int p, int m) {
  if (m == 0) return 1;
  if (s == 0 || p == 0) return 1;
  int ret = 0;
  for (int j = 0, t = 1; j <= p && s >= j * (m + 1); ++j, t = -t)
    ret = (ret + 1LL * t * C[p][j] * C[s + p - 1 - j * (m + 1)][p - 1]) %
          998244353;
  return ret;
}
int compP(int n, int r, int s) {
  if (n == 1) return 1;
  if (r == 0 && s == 0) return invMod(n);
  int ans = 0;
  for (int i = max(1, r); i <= s; ++i) {
    int good = g(s - i, n - 1, i - 1);
    int tie = 0;
    for (int j = 1; s - 1LL * i * (j + 1) >= 0 && j < n; ++j) {
      int val = (1LL * g(s - i * (j + 1), n - j - 1, i - 1) * C[n - 1][j]) %
                998244353;
      tie = (1LL * val * invMod(j + 1) + tie) % 998244353;
    }
    ans = Mod(Mod((ans + tie) + good));
  }
  ans = (1LL * ans * invMod(C[s + n - r - 1][s - r])) % 998244353;
  return ans;
}
int main() {
  int n, r, s;
  scanf("%d%d%d", &n, &s, &r);
  compDp(n, r, s);
  compC(n + s);
  printf("%d\n", compP(n, r, s));
  return 0;
}
