#include<iostream>
using namespace std;
int ans=0,n,m;
int a[100][100]={{1}},b[100][100];
int fx[2][2]={{0,1},{1,0}};
void dfs(int x,int y){
if(x==n&&y==m){
ans++;
return ;
}
b[x][y]=1;
for(int i=0;i<=1;i++){
int nx=x+fx[i][0],ny=y+fx[i][1];
if(nx<=n&&ny<=m&&b[nx][ny]==0&&a[nx][ny]==1){
b[nx][ny]=1;
dfs(nx,ny);
b[nx][ny]=0;
}
}
b[x][y]=0;
}
int main(){
int x,y;
cin>>n>>m>>x>>y;
n+=1,m+=1,x+1,y+1;
a[x][y]=0;
a[x+1][y+2]=0;
a[x-1][y+2]=0;
a[x+1][y-2]=0;
a[x-1][y-2]=0;
a[x+2][y+1]=0;
a[x-2][y+1]=0;
a[x+2][y-1]=0;
a[x-2][y-1]=0;
dfs(1,1);
cout<<ans;
return 0;
}