#include <string.h>
#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <list>
#include <algorithm>
#include <cmath>
#include <ctime>

using namespace std;

// --------------------------------------------------------------------

typedef long long LL ;
typedef unsigned long long ULL ;
typedef unsigned int Uint ;
typedef pair<LL,LL> pii ;
typedef pair<LL,long long> pill ;
typedef pair<long long,LL> plli ;
typedef pair<long long,long long> pllll ;
typedef queue<LL> que ;

// --------------------------------------------------------------------

#define re register 
#define TEMP template<typename T>
#define fre(x) freopen(#x".in","r",stdin); freopen(#x".out","w",stdout);
#define lowbit(x) (x)&(~x+1)
#define inl inline

// --------------------------------------------------------------------

TEMP
inl T read ( re T x = 0 , re T f = 0 ){
	re char ch = getchar() ;
	for (;!isdigit(ch);ch = getchar() ) if(ch == '-') f = 1 ;
	for (;isdigit(ch);ch = getchar() ) x = (x << 1) + (x << 3) + (ch ^ 48) ;
	return f ? ~x+1 : x ;
}

TEMP
inl T MAX ( re T a , re T b ){
	return a > b ? a : b ;
}

TEMP
inl T MIN ( re T a , re T b ){
	return a < b ? a : b ;
}

TEMP
inl T ABS ( re T a ){
	return a > 0 ? a : -a ;
}

inl void SWAP_INT ( re int a , re int b ){
	re int tmp = a ;
	a = b ;
	b = a ;
	return ;
}

inl void SWAP_LL ( re LL a , re LL b ){
	re LL tmp = a ;
	a = b ;
	b = a ;
	return ;
}

// --------------------------------------------------------------------

const LL MOD = 998244353 ;
LL s , r , p ;
LL ALL ;
LL C[5111][5111] ;

// --------------------------------------------------------------------

inl LL C_MATH( LL x ,LL y ){
	return C[y][x] ;
}

inl LL POW( LL x , LL y){
	LL ans = 1 ;
	for(;y;x = (x*x) % MOD,y >>= 1){
		if(y&1) ans *= x , ans %= MOD;
	}
	return ans % MOD ;
}


// --------------------------------------------------------------------

LL PLAN_WIN ;

signed main(){
//	fre() ;
	p = read<LL>() ;
	s = read<LL>() ;
	r = read<LL>() ;
	PLAN_WIN = 0 ;
	C[0][0]=1;
	for (LL i = 1;i <= 5110; ++i ){
		C[i][i] = C[0][i] = 1 ;
		for (LL j = 1; j <= i ; ++j ) C[j][i] = (C[j-1][i-1]+C[j][i-1]) % MOD ;
	}
	ALL = C_MATH(s-r+p-1,p-1) ;
	for (LL i = r ; i <= s ; ++i ){
//		PLAN_WIN = 0 ;
		for (LL j = 1 ; j <= p ; ++j ){
			LL TMP = 0 ;
			for (LL k = 0 , pos ; k <= p - j && k*i <= s - i*j ; ++k ){
				pos = C_MATH(p-j,k) * C_MATH((s-i*j) - k * i + (p-j) - 1,(p-j)-1) % MOD ;
				TMP += (TMP + (k&1)?-pos:pos) ;
			}
			TMP = (TMP+MOD)%MOD ;
//			cerr << TMP << endl ;
			if (j == p) PLAN_WIN += (i*j == s)?POW(j,MOD-2) : 0 ;
			else PLAN_WIN += POW(j,MOD-2)%MOD * (C_MATH(p-1,j-1)%MOD) * TMP ;
			PLAN_WIN %= MOD ;
		}
//		cerr << PLAN_WIN << endl ;
	}
	printf ("%lld\n",PLAN_WIN*POW(ALL,MOD-2)%MOD) ;
	return 0 ;
}
/*
2 6 3
3 3 0.5
4 2 1
5 1 1
6 0 1
ans = 499122180
*/