#include <bits/stdc++.h>
using namespace std;
bool ma[21][21];
bool flag[21][21];
int sx,sy;
int kx[8]={1,2,-1,-2,1,2,-1,-2};
int ky[8]={2,1,2,1,-2,-1,-2,-1};
int px[2]={1,0};
int py[2]={0,1};
int fx,fy;
int zx,zy;
int t;
int n,m,ans;
void dfs(int x,int y)
{
if(n==x&&m==y)
{
ans++;
return;
}
else
{
for(int i=0;i<=1;i++)
{
int l=px[i]+x;
int r=py[i]+y;
if(l>=0&&r>=0&&l<=n&&r<=m&&!flag[l[r]&&!ma[l][r])
{
flag[l][r]=true;
dfs(l,r);
flag[l][r]=false;
}
}
}
}
int main()
{
cin>>n>>m>>fx>>fy;
ma[fx][fy]=true;
flag[0][0]=true;
for(int i=0;i<=7;i++)
{
zx=fx+kx[i];
zy=fy+ky[i];
if(zx>=0&&zy>=0&&zx<=n&&zy<=m)
ma[zx][zy]=true;
}
dfs(0,0);
cout<<ans;
return 0;
}