#include #define rep(i, n) for (int i = 0; i < n; i++) using namespace std; typedef long long ll; ll mod_pow(ll x, ll n, ll mod) { ll res = 1; while (n > 0) { if (n & 1) res = res * x % mod; x = x * x % mod; n >>= 1; } return res; } int main() { ll N, M, A, B, MOD = 998244353; vector f(300001, 1); rep(i, 300000) { f[i + 1] = (f[i] * (i + 1)) % MOD; } cin >> N >> M >> A >> B; ll ans = 0; for (int i = 1; i <= M; i++) { ll x = min(i + B, M) - A * (N - 1) - i; if (x < 0) break; ll a = (f[x + N - 1] * mod_pow(f[N - 1], MOD - 2, MOD)) % MOD; a = (a * mod_pow(f[x], MOD - 2, MOD)) % MOD; ans = (ans + a) % MOD; } for (int i = 1; i <= N; i++) ans = (ans * i) % MOD; cout << ans << "\n"; }