X, Y, Z, W = map(int, input().split()) mod = 998244353 if Z == 0: X, Y = Y, X Z, W = W, Z m = 3 * 10 ** 5 + 10 fac = [1] * (m + 1) facinv = [1] * (m + 1) for i in range(1, m+1): fac[i] = (fac[i-1] * i) % mod facinv[i] = (facinv[i-1] * pow(i, -1, mod)) % mod def nCk(n, k): return (fac[n] * facinv[k] * facinv[n-k]) % mod u = X - Z v = Y - W ans = nCk((u+v-1), u) # print(u, v, ans) ans = (ans * fac[X] * facinv[Z]) % mod ans = (ans * fac[Y]) % mod print(ans)