#include <bits/stdc++.h>
using namespace std;
const int maxn = 103, maxs = 5003, mo = 998244353;
int n, s, r, ans, C[maxn + maxs][maxn + maxs];
inline int qpow(int a, int b) {
  int res = 1;
  for (; b; b >>= 1, a = (long long)a * a % mo)
    if (b & 1) res = (long long)res * a % mo;
  return res;
}
inline int cbn(int a, int b) {
  if (a < b) return 0;
  if (b < 0 || a < 0) return 0;
  if (C[a][b]) return C[a][b];
  return C[a][b] = (cbn(a - 1, b) + cbn(a - 1, b - 1)) % mo;
}
inline int getdp(int m, int sm, int x) {
  if (m == 0) return sm == 0;
  if (x == 0) return 0;
  int res = 0;
  for (register int i = 0; i <= m; ++i)
    if (i & 1)
      res = (res - (long long)cbn(m, i) * cbn(sm - x * i + m - 1, m - 1)) % mo;
    else
      res = (res + (long long)cbn(m, i) * cbn(sm - x * i + m - 1, m - 1)) % mo;
  return res;
}
int main() {
  scanf("%d%d%d", &n, &s, &r);
  C[0][0] = 1;
  for (register int i = r; i <= s; ++i)
    for (register int j = 1; j <= n; ++j) {
      ans = (ans + (long long)cbn(n - 1, j - 1) * getdp(n - j, s - i * j, i) %
                       mo * qpow(j, mo - 2)) %
            mo;
    }
  ans = (long long)ans * qpow(cbn(s - r + n - 1, n - 1), mo - 2) % mo;
  if (ans < 0) ans += mo;
  printf("%d", ans);
  return 0;
}
