#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
int dx[9] = { 0,1,2,2,1,-1,-2,-2,-1 };
int dy[9] = { 0,2,1,-1,-2,-2,-1,1,2 };
long long cnt[22][22] = { 0 };
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int mx, my;
cin >> mx >> my;
int num1 = 1, num2 = 1;
for (int i = 0; i <= n; i++) {
for (int k = 0; k < 9; k++) {
if (my + dy[k] == i && mx + dx[k] == 0) {
num1 = 0;
}
}
cnt[i][0] = num1;
}
for (int i = 0; i <= m; i++) {
for (int k = 0; k < 9; k++) {
if (mx + dx[k] == i && my + dy[k] == 0) {
num2 = 0;
}
}
cnt[0][i] = num2;
}
if (n == 0) {
for (int i = 0; i <= 0; i++)
for (int j = 1; j <= m; j++) {
cnt[i][j] = cnt[i - 1][j] + cnt[i][j - 1];
for (int k = 0; k < 9; k++)
if (i == mx + dx[k] && j == my + dy[k]) cnt[i][j] = 0;
}
cout << cnt[n][m];
return 0;
}
if (m == 0) {
for (int i = 1; i <= n; i++)
for (int j = 0; j <= 0; j++) {
cnt[i][j] = cnt[i - 1][j] + cnt[i][j - 1];
for (int k = 0; k < 9; k++)
if (i == mx + dx[k] && j == my + dy[k]) cnt[i][j] = 0;
}
cout << cnt[n][m];
return 0;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
cnt[i][j] = cnt[i - 1][j] + cnt[i][j - 1];
for (int k = 0; k < 9; k++)
if (i == mx + dx[k] && j == my + dy[k]) cnt[i][j] = 0;
}
cout << cnt[n][m];
return 0;
}