#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, s, e) for (int i = (int)(s); i < (int)(e); ++i) #define all(a) (a).begin(),(a).end() #include <atcoder/modint> using namespace atcoder; using mint = modint998244353; int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); ll X, Y, Z, W; cin >> X >> Y >> Z >> W; mint ans = 1; if (Z == 0) { ll t = X + Y - W; rep(i, 1, t) ans *= i; ll k = Y - W; rep(i, 0, k) ans *= Y - i; rep(i, 1, k + 1) ans /= i; ans *= X; } else { ll t = X + Y - Z; rep(i, 1, t) ans *= i; ll k = X - Z; rep(i, 0, k) ans *= X - i; rep(i, 1, k + 1) ans /= i; ans *= Y; } cout << ans.val() << '\n'; }