#include<iostream>
using namespace std;
const int N = 21;
int g[N][N];
int a,b,n,m;
int cnt;
void dfs(int x,int y)
{
//边界情况
if(x > a || y > b || g[x][y]) return ;
if(x == a && y == b) {
cnt ++;
return;
}
//两种情况
//一是走下边,二是走右边
dfs(x,y + 1);
dfs(x + 1,y);
}
int main()
{
//a,b为终点
//n,m为马的点
cin >> a >> b >> n >> m;
//标记马的控制点
for(int i = 0;i <= N;i ++)
for(int j = 0;j <= N;j ++)
{
if(abs(i - n) + abs(j - m) == 3 && i != n && j != m)
g[i][j] = 1;
}
dfs(0,0);
cout << cnt;
return 0;
}