#include<iostream>
using namespace std;
int main()
{
int n,m,Xc,Yc,loc[99999];
bool lc[99999];
cin>>n>>m>>Xc>>Yc;
loc[0]=1;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
lc[i*10+j]=true;
}
}
lc[Xc*10+Yc]=lc[(Xc-2)*10+(Yc-1)]=lc[(Xc-1)*10+(Yc-2)]=lc[(Xc+1)*10+(Yc-2)]=lc[(Xc+2)*10+(Yc-1)]=lc[(Xc+2)*10+(Yc+1)]=lc[(Xc+1)*10+(Yc+2)]=lc[(Xc-1)*10+(Yc+2)]=lc[(Xc-2)*10+(Yc+1)]=false;
for(int i=0;i<=n;i++)
{
if(lc[(i+1)*10]!=false) loc[(i+1)*10]=1;
else loc[(i+1)*10]=0;
}
for(int i=0;i<=m;i++)
{
if(lc[i+1]!=false) loc[i+1]=1;
else loc[i+1]=0;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(lc[i*10+j]!=false)
loc[i*10+j]=loc[(i-1)*10+j]+loc[i*10+j-1];
}
}
cout<<loc[n*10+m];
return 0;
}
``` ```