#include <iostream>
#define ll long long
using namespace std;
ll dfs(ll memory[20][20], int cntrlpnt[9][2], int ax, int ay, int bx, int by)
{
if (ax > bx || ay > by)
{
return 0;
}
if (memory[ax][ay] != -1)
{
return memory[ax][ay];
}
if (ax == bx && ay == by)
{
memory[ax][ay] = 1;
return 1;
}
memory[ax][ay] = dfs(memory, cntrlpnt, ax + 1, ay, bx, by) + dfs(memory, cntrlpnt, ax, ay + 1, bx, by);
return memory[ax][ay];
}
int main()
{
int bx, by, hx, hy;
cin >> bx >> by >> hx >> hy;
int cntrlpnt[9][2] = {{hx, hy},
{hx + 1, hy + 2},
{hx + 1, hy - 2},
{hx - 1, hy + 2},
{hx - 1, hy - 2},
{hx + 2, hy + 1},
{hx + 2, hy - 1},
{hx - 2, hy + 1},
{hx - 2, hy - 1}};
ll memory[20][20];
for (int i = 0; i < 20; i++)
{
for (int j = 0; j < 20; j++)
{
memory[i][j] = -1;
}
}
for (int i = 0; i < 9; i++)
{
int x = cntrlpnt[i][0];
int y = cntrlpnt[i][1];
if (x >= 0 && x <= 20 && y >= 0 && y <= 20)
{
memory[x][y] = 0;
}
}
cout << dfs(memory, cntrlpnt, 0, 0, bx, by) << endl;
return 0;
}