import sys #sys.setrecursionlimit(10 ** 6) INF = float('inf') MOD = 998244353 from collections import defaultdict def ceil(A,B): return -(-A//B) def modinv(x): return pow(x,MOD-2,MOD) def binomial_coefficients(n, k): numera = 1 # 分子 denomi = 1 # 分母 for i in range(k): numera *= n - i numera %= MOD denomi *= i + 1 denomi %= MOD return numera * modinv(denomi) % MOD #binomial_coefficients(n, k)…n_C_k def solve(): def II(): return int(sys.stdin.readline()) def LI(): return list(map(int, sys.stdin.readline().split())) def LC(): return list(sys.stdin.readline().rstrip()) def IC(): return [int(c) for c in sys.stdin.readline().rstrip()] def MI(): return map(int, sys.stdin.readline().split()) X,Y,Z,W = MI() if(Z==0): D = X N = Y R = Y-W elif(W ==0): D = Y N = X R = X - Z Ans = 1 for d in range(1,D+1): Ans*=d Ans%=MOD Ans *= binomial_coefficients(N, R) for r in range(R): Ans*=(D+r) Ans%=MOD print(Ans%MOD) return solve()