#include<stdlib.h>
void main()
{
long long i,j,n,m,x,y,f[100][100],move[9][2]={{0,0},{-2,-1},{-2,1},{-1,2},{-1,-2},{1,-2},{1,2},{2,-1},{2,1}};
scanf("%lld%lld%lld%lld",&n,&m,&x,&y);
for(i=0;i<=8;i++)
if(x+move[i][0]>=0 && y+move[i][1]>=0)
f[x+move[i][0]][y+move[i][1]]=-1;
f[0][0]=1;
for(i=1;i<=n;i++) f[i][0]=f[i][0]==-1? 0:f[i-1][0];
for(j=1;j<=m;j++) f[0][j]=f[0][j]==-1? 0:f[0][j-1];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f[i][j]=f[i][j]==-1? 0:f[i][j-1]+f[i-1][j];
printf("%lld",f[n][m]);
}
using namespace std;
#define ll long long
ll a,b,n,m,l[22][22],ma[23][23];
using namespace std;
void bj(ll x,ll y)
{
ma[x][y]=1;
ma[x-1][y-2]=1;
ma[x-2][y-1]=1;
ma[x-2][y+1]=1;
ma[x-1][y+2]=1;
ma[x+1][y-2]=1;
ma[x+2][y-1]=1;
ma[x+2][y+1]=1;
ma[x+1][y+2]=1;
}
int main()
{
scanf("%lld%lld%lld%lld",&n,&m,&a,&b);
bj(a,b);
l[1][0]=1;
for (int i=1;i<=n+1;++i)
{
for (int j=1;j<=m+1;++j)
{
l[i][j]=l[i-1][j]+l[i][j-1];
if (ma[i-1][j-1])
{
l[i][j]=0;
}
}
}
printf("%lld",l[n+1][m+1]);
return 0;
}
using namespace std;
bool h[105][105];
long long f[105][105];
int main(){
int n,m,x,y;
cin>>n>>m>>x>>y;
memset(h,0,sizeof(h));
h[x][y]=1;
h[x+1][y+2]=1;
h[x+1][y-2]=1;
h[x-1][y+2]=1;
h[x-1][y-2]=1;
h[x+2][y+1]=1;
h[x-2][y+1]=1;
h[x+2][y-1]=1;
h[x-2][y-1]=1;
for(int i=0;i<=n;i++){
if(h[i][0]==0){
f[i][0]=1;
}else{
break;
}
}
for(int i=0;i<=m;i++){
if(h[0][i]==0){
f[0][i]=1;
}else{
break;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(h[i][j]==0){
f[i][j]+=f[i-1][j]+f[i][j-1];
}
}
}cout<<f[n][m]<<endl;
return 0;
}