#include<iostream>
using namespace std;
struct point {
int x;
int y;
};
int ways[20][20] = { 0 };
point pB;
point pM;
int way(point p) {
if (abs(p.x - pM.x) * abs(p.y - pM.y) == 2)return 0;
if (p.x == pM.x && p.y == pM.y)return 0;
if (p.x == 0 || p.y == 0)return 1;
if (ways[p.x][p.y] != 0)return ways[p.x][p.y];
point p2, p3;
p2.x = p.x - 1;
p2.y = p.y;
p3.x = p.x;
p3.y = p.y - 1;
ways[p.x][p.y] = way(p2) + way(p3);
return ways[p.x][p.y];
}
int main() {
cin >> pB.x >> pB.y >> pM.x >> pM.y;
printf("%d", way(pB));
return 0;
}