#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
using LL = long long;
const int N = 1010;
const int dx[] = {1, 1, -1, -1, 2, 2, -2, -2};
const int dy[] = {2, -2, 2, -2, 1, -1, 1, -1};
#define fore(i, a, n) for (int i = a; i <= n; i ++)
int n, m, x, y;
LL ans[N][N];
bool st[N][N];
int main(){
cin >> n >> m >> x >> y;
n ++, m ++, x ++, y ++; // 移到以(1, 1)开始
st[x][y] = true;
for (int i = 0; i < 8; i ++){ // 判断哪些点能走
int nx = x + dx[i], ny = y + dy[i];
if (nx < 1 || nx > n || ny < 1 || ny > m)
continue;
st[nx][ny] = true;
}
ans[1][1] = 1; // 初始化
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++){
if (i == 1 && j == 1) continue; // 第一个点初始化过了
ans[i][j] = ans[i - 1][j] + ans[i][j - 1];
if (st[i][j]) ans[i][j] = 0; // 不能走的话就把方案改为0
}
cout << ans[n][m] << endl;
return 0;
}