#include <bits/stdc++.h>
using namespace std;
class Solution {
 public:
  Solution() { init(11000); }
  int calc(int n, int s, int l) {
    int r = s;
    long long p = 0;
    long long q = nCk(s - l + n - 1, n - 1);
    for (int i = l; i <= r; ++i) {
      p = addM(p, count(n, s, i));
    }
    long long res = mulM(p, invM(q));
    return res;
  }
  int count(int n, int s, int x) {
    long long res = 0;
    for (int i = 1; i <= n; ++i) {
      res = addM(res, mulM(invs[i], mulM(nCk(n - 1, i - 1),
                                         count2(n - i, s - i * x, x))));
    }
    return res;
  }
  int count2(int n, int s, int x) {
    long long res = 0;
    for (int i = 0, sign = 1; i <= n; ++i, sign = (sign == 1 ? -1 : 1)) {
      res = addM(res, sign * mulM(nCk(n, i), nCk(s - i * x + n - 1, n - 1)));
    }
    return res;
  }

 private:
  const int M = 998244353;
  vector<long long> fs;
  vector<long long> ifs;
  vector<long long> invs;
  long long normalize(long long a) {
    a %= M;
    if (a < 0) {
      a += M;
    }
    return a;
  }
  long long addM(long long a, long long b) {
    a += b;
    while (a >= M) {
      a -= M;
    }
    while (a < 0) {
      a += M;
    }
    return a;
  }
  long long mulM(long long a, long long b) { return normalize(a * b); }
  long long powM(long long x, long long e) {
    long long res = 1;
    while (e > 0) {
      if (e & 0x1) {
        res = mulM(res, x);
      }
      x = mulM(x, x);
      e >>= 1;
    }
    return res;
  }
  long long invM(long long a) {
    long long b = M;
    long long u = 0, v = 1;
    a = normalize(a);
    while (a > 0) {
      long long d = b / a;
      b -= d * a;
      u -= d * v;
      swap(a, b);
      swap(u, v);
    }
    assert(b == 1);
    u = normalize(u);
    return u;
  }
  void init(int n) {
    fs.clear();
    fs.resize(n + 1, 1);
    ifs.clear();
    ifs.resize(n + 1, 1);
    invs.clear();
    invs.resize(n + 1, 1);
    for (int i = 1; i <= n; ++i) {
      fs[i] = mulM(fs[i - 1], i);
    }
    ifs[n] = invM(fs[n]);
    for (int i = n - 1; i >= 0; --i) {
      ifs[i] = mulM(ifs[i + 1], i + 1);
    }
    for (int i = 1; i <= n; ++i) {
      invs[i] = mulM(ifs[i], fs[i - 1]);
    }
  }
  long long nCk(int n, int k) {
    if (n == k) {
      return 1;
    }
    if (n < k || k < 0) {
      return 0;
    }
    return mulM(fs[n], mulM(ifs[n - k], ifs[k]));
  }
};
int main(int argc, char** argv) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  Solution sol;
  int n, s, l;
  cin >> n >> s >> l;
  cout << sol.calc(n, s, l) << endl;
  return 0;
}
