#include <iostream>
#include <cstdio>
#include <algorithm>
#include <stack>
#include <queue>
using namespace std;
int n,m;
int c,d;
int map [25][25];
int flag[25][25];
int t1[3] = {0,1,0};
int t2[3] = {0,1,1};
int t3[9] = {0,-1,-1,-2,-2,1,1,2,2};
int t4[9] = {0,-2,2,-1,1,-2,2,1,-1};
int ans = 0;
int cal(int c,int d)
{
for(int i=1;i<=8;i++)
map[c+t3[i]][d+t4[i]]=1;
}
void dfs (int a,int b)
{
if (a == n && b== m)
{
ans ++;
return ;
}
else
{
for (int i=1;i<=2;i++)
{
int z1=a+t1[i];
int z2=b+t2[i];
if(map[z1][z2]==0&&z1>=0&&z2>=0&&z1<=n&&z2<=m)
{
dfs(z1,z2);
}
}
}
}
int main() {
cin >> n>> m>> c>>d;
cal(c,d);
dfs(0,0);
cout <<ans;
}