← 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.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var n, m int
	fmt.Fscan(in, &n, &m)

	if n == 2 {
		fmt.Fprintln(out, 0)
		return
	}

	fact := make([]int64, m+1)
	invFact := make([]int64, m+1)

	fact[0] = 1
	for i := 1; i <= m; i++ {
		fact[i] = fact[i-1] * int64(i) % MOD
	}

	invFact[m] = modPow(fact[m], MOD-2)
	for i := m; i >= 1; i-- {
		invFact[i-1] = invFact[i] * int64(i) % MOD
	}

	comb := fact[m] * invFact[n-1] % MOD * invFact[m-(n-1)] % MOD
	ans := comb * int64(n-2) % MOD * modPow(2, int64(n-3)) % MOD

	fmt.Fprintln(out, ans)
}