#include<bits/stdc++.h>
using namespace std;
const long long N = 20 + 10;
long long a[N][N],n,m,dp[N][N];
bool check(long long x,long long y){
return x >= 0 and x <= n and y >= 0 and y <= m;
}
int main()
{
long long x,y;
cin >> n >> m >> x >> y;
a[x][y] = 1;
if (check(x + 1,y - 2)) a[x + 1][y - 2] = 1;
if (check(x + 1,y + 2)) a[x + 1][y + 2] = 1;
if (check(x + 2,y + 1)) a[x + 2][y + 1] = 1;
if (check(x + 2,y - 1)) a[x + 2][y - 1] = 1;
if (check(x - 1,y + 2)) a[x - 1][y + 2] = 1;
if (check(x - 1,y - 2)) a[x - 1][y - 2] = 1;
if (check(x - 2,y + 1)) a[x - 2][y + 1] = 1;
if (check(x - 2,y - 1)) a[x - 2][y - 1] = 1;
dp[0][0] = 1;
for (long long i = 0;i <= n;i++){
if (a[i][0] == 0) dp[i][0] = 1;
}
for (long long i = 0;i <= m;i++){
if (a[0][i] == 0) dp[0][i] = 1;
}
for (long long i = 1;i <= n;i++){
for (long long j = 1;j <= m;j++){
if (a[i][j] == 1) continue;
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
cout << dp[n][m];
return 0;
}