#include <bits/stdc++.h>
using namespace std;
long long nCr[5500][150];
const long long mod = (119 << 23) + 1, root = 3;
long long modpow(long long a, long long e) {
  if (e == 0) return 1;
  long long x = modpow(a * a % mod, e >> 1);
  return e & 1 ? x * a % mod : x;
}
long long inv(long long a) { return modpow(a, mod - 2); }
long long binom(long long n, long long k) {
  if (n == -1 && k == -1) return 1;
  if (k < 0 || k > n || n < 0) return 0;
  return nCr[n][k];
}
int main() {
  nCr[0][0] = 1;
  for (int i = (1); i < int(5500); ++i)
    for (int j = (0); j < int(150); ++j) {
      nCr[i][j] = nCr[i - 1][j];
      if (j) {
        nCr[i][j] += nCr[i - 1][j - 1];
        nCr[i][j] %= mod;
      }
    }
  ios::sync_with_stdio(0);
  int p, s, r;
  cin >> p >> s >> r;
  long long succeeding = 0;
  long long total = 0;
  for (int a1 = (r); a1 < int(s + 1); ++a1) {
    total += binom(s + p - 2 - a1, p - 2);
    total %= mod;
    long long states = 0;
    vector<long long> counted(p);
    for (int numSame = (0); numSame < int(p); ++numSame) {
      if (s + p - numSame - 2 - (numSame + 1) * a1 < -1) break;
      for (int numLargerOrEqual = (0); numLargerOrEqual < int(p - numSame);
           ++numLargerOrEqual) {
        if (s + p - numSame - 2 - (numSame + 1 + numLargerOrEqual) * a1 < -1)
          break;
        long long mul = (numLargerOrEqual % 2 ? -1 : 1);
        long long t = mul * binom(p - 1, numSame);
        t *= binom(p - 1 - numSame, numLargerOrEqual);
        t %= mod;
        t *= binom(s + p - numSame - 2 - (numSame + 1 + numLargerOrEqual) * a1,
                   p - 2 - numSame);
        t %= mod;
        t *= inv(numSame + 1);
        states += t;
        states %= mod;
      }
    }
    if (states < 0) states += mod;
    succeeding += states;
    succeeding %= mod;
  }
  long long ans = succeeding * inv(total);
  ans %= mod;
  cout << ans << endl;
}
