package main
import (
"bufio"
"fmt"
"os"
)
const MOD int64 = 998244353
func modPow(a, e int64) int64 {
res := int64(1)
for e > 0 {
if e&1 == 1 {
res = res * a % MOD
}
a = a * a % MOD
e >>= 1
}
return res
}
func main() {
in := bufio.NewReader(os.Stdin)
var p, s, r int
fmt.Fscan(in, &p, &s, &r)
nmax := s + p + 5
fac := make([]int64, nmax)
ifac := make([]int64, nmax)
fac[0] = 1
for i := 1; i < nmax; i++ {
fac[i] = fac[i-1] * int64(i) % MOD
}
ifac[nmax-1] = modPow(fac[nmax-1], MOD-2)
for i := nmax - 1; i >= 1; i-- {
ifac[i-1] = ifac[i] * int64(i) % MOD
}
comb := func(n, k int) int64 {
if n < 0 || k < 0 || k > n {
return 0
}
return fac[n] * ifac[k] % MOD * ifac[n-k] % MOD
}
total := comb(s+p-1, p-1)
den := comb(s-r+p-1, p-1)
bounded := int64(0)
if r > 0 {
limit := s / r
if limit > p {
limit = p
}
for j := 0; j <= limit; j++ {
term := comb(p, j) * comb(s-j*r+p-1, p-1) % MOD
if j%2 == 0 {
bounded += term
} else {
bounded -= term
}
}
bounded %= MOD
if bounded < 0 {
bounded += MOD
}
}
num := (total - bounded) % MOD
if num < 0 {
num += MOD
}
ans := num * modPow(int64(p), MOD-2) % MOD
ans = ans * modPow(den, MOD-2) % MOD
fmt.Println(ans)
}