#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100][100], f[100][100];
int n, m, cx, cy, i, j;
cin >> n >> m >> cx >> cy;
a[cx][cy] = 1;
//方向数组
int x[] = { 1,1,-1,-1,2,2,-2,-2 };
int y[] = { 2,-2,2,-2,1,-1,1,-1 };
for (i = 0; i < 8; i++)
{
int dx = cx + x[i];
int dy = cy + y[i];
//判断马的控制点是否在范围内
if(dx>=0&&dx<=n&&dy>=0&&dy<=m)
a[dx][dy] = 1;
}
if (a[0][0] == 1)
f[0][0] = 0;
else f[0][0] = 1;
for (i = 1; i <= m; i++)
{
f[0][i] = f[0][i - 1];
if (a[0][i] == 1)
f[0][i] = 0;
}
for (i = 1; i <= n; i++)
{
f[i][0] = f[i - 1][0];
if (a[i][0] == 1)
f[i][0] = 0;
}
for(i=1;i<=n;i++)
for (j = 1; j <= m; j++)
{
f[i][j] = f[i - 1][j] + f[i][j - 1];
if (a[i][j] == 1)
f[i][j] = 0;
}
cout << f[n][m];
return 0;
}