package main import . "fmt" import . "math/big" func main() { const Mod = 998244353 var x, y, z, w int Scan(&x, &y, &z, &w) m := x+y n := make([]int, m+1) n[0] = 1 for i := range n[1:] { n[i+1] = n[i]*(i+1)%Mod } d := make([]int, m+1) d[m] = int(new(Int).ModInverse(NewInt(int64(n[m])), NewInt(Mod)).Int64()) for i := range d[1:] { j := m - i d[j-1] = d[j]*j%Mod } // なんかサンプルは合うが、理屈わかってない e := (x - z) + (y - w) ans := (n[x]*d[z]%Mod)* (n[y]*d[w]%Mod)%Mod* (n[e-1]*d[x-max(1,z)]%Mod*d[y-max(1,w)]%Mod)%Mod Println(ans) }