package main
import (
"bufio"
"fmt"
"os"
)
const MOD = 998244353
func main() {
reader := bufio.NewReader(os.Stdin)
var n, k int
fmt.Fscan(reader, &n, &k)
if k%2 != 0 {
fmt.Println(0)
return
}
K := k / 2
fact := make([]int64, n+K+1)
inv := make([]int64, n+K+1)
fact[0] = 1
inv[0] = 1
for i := 1; i <= n+K; i++ {
fact[i] = (fact[i-1] * int64(i)) % MOD
}
inv[n+K] = power(fact[n+K], MOD-2)
for i := n + K - 1; i >= 1; i-- {
inv[i] = (inv[i+1] * int64(i+1)) % MOD
}
nCr := func(n, r int) int64 {
if r < 0 || r > n {
return 0
}
num := fact[n]
den := (inv[r] * inv[n-r]) % MOD
return (num * den) % MOD
}
ans := int64(0)
for v := 1; v <= n; v++ {
term := (nCr(n, v) * nCr(int(int64(v)*int64(n)+int64(K)-1), n+K-1)) % MOD
if (n-v)%2 == 1 {
ans = (ans - term + MOD) % MOD
} else {
ans = (ans + term) % MOD
}
}
ans = (ans * 2) % MOD
if K == 0 {
term := int64(1)
for i := 1; i <= n; i++ {
term = (term * int64(i)) % MOD
}
ans = (ans - term + MOD) % MOD
}
fmt.Println(ans)
}
func power(a, b int64) int64 {
res := int64(1)
for b > 0 {
if b&1 == 1 {
res = (res * a) % MOD
}
a = (a * a) % MOD
b >>= 1
}
return res
}