#include<iostream>
using namespace std;
const int N = 25;
const int M = 25;
long long MAP[N][M];
int n, m;
int x_b, y_b;
int x_c, y_c;
bool pd(int x, int y)
{
if (abs(x_c - x) == 1 && abs(y_c - y) == 2)
{
return 1;
}
else if (abs(x_c - x) == 2 && abs(y_c - y) == 1)
{
return 1;
}
else if(x_c-x==0 && y_c-y==0)
{
return 1;
}
else {
return 0;
}
}
int main()
{
cin >> x_b >> y_b >> x_c >> y_c;
for (int i = 0; i <= x_b; i++)
{
if (pd(i, 0))
{
MAP[i][0] = 0;
}
else {
MAP[i][0] = 1;
}
}
for (int j = 0; j <= y_b; j++)
{
if (pd(0, j))
{
MAP[0][j] = 0;
}
else {
MAP[0][j] = 1;
}
}
for (int i = 1; i <= x_b; i++)
{
for (int j = 1; j <= y_b; j++)
{
if (pd(i, j))
{
MAP[i][j] = 0;
}
else {
MAP[i][j] = MAP[i - 1][j] + MAP[i][j - 1];
}
}
}
cout << MAP[x_b][y_b];
return 0;
}