#include<bits/stdc++.h>
#define N 200009
#define INF 0x3f3f3f3f
#define mod 998244353
#define int long long
using namespace std;
typedef long double ldb;
typedef pair<int,int> pii;
int t,inv[N],finv[N],f[N],n,m,x,y,ans;
void init(){
inv[1]=1,inv[0]=1;
for(int i=2;i<=200005;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
finv[1]=1,f[1]=1,finv[0]=1,f[0]=1;
for(int i=2;i<=200005;i++)finv[i]=(finv[i-1]*inv[i])%mod,f[i]=(f[i-1]*i)%mod;
}
int ask(int n,int m){
if(n==m||n<=0||m<=0){return 1;}
else return f[n]*finv[m]%mod*finv[n-m]%mod;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>m>>n>>x>>y;
init();
if(x<=n&&y>n){
for(int i=1;i<=m;i++)
ans=(ans+ask(i+x-2,x-1)*ask(n-x+m-i,n-x)%mod*ask(y-n+m-i-1,y-n-1)%mod*ask(2*n-y+i-1,2*n-y)%mod)%mod;
}else {
ans=ask(n+m-1,n-1)*ask(n+x-y+m-1,n+x-y-1)%mod;
}
cout<<ans<<endl;
return 0;
}