#include using namespace std; const long long MOD = 998244353; int main(){ int X, Y, Z, W; cin >> X >> Y >> Z >> W; if (W == 0){ swap(X, Y); swap(Z, W); } if (W == Y){ long long ans = 1; for (int i = X; i > Z; i--){ ans *= i; ans %= MOD; } cout << ans << endl; } else { vector inv(Y + 1); inv[1] = 1; for (int i = 2; i <= Y; i++){ inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD; } long long ans = X; for (int i = 1; i <= Y; i++){ ans *= i; ans %= MOD; } for (int i = 1; i <= W; i++){ ans *= inv[i]; ans %= MOD; } for (int i = 1; i <= Y - W; i++){ ans *= inv[i]; ans %= MOD; } for (int i = 1; i <= X + Y - W - 1; i++){ ans *= i; ans %= MOD; } cout << ans << endl; } }