← Home
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)
}