RT,WA 40pts
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, m;
int f[30][30];
int x, y;
int fx[8][2] = {{-2, -1}, {-1, -2}, {1, -2}, {2, -1}, {2, 1}, {1, 2}, {-1, 2}, {-2, 1}};
signed main()
{
cin >> n >> m;
cin >> x >> y;
f[0][0] = 0;
f[x][y] = -1;
for (int i = 0; i < 8; i++)
{
int xx = x + fx[i][0];
int yy = y + fx[i][1];
if(xx < 0 or xx > n or yy < 0 or yy > m) continue;
f[xx][yy] = -1;
}
for (int i = 1; i <= n; i++) f[i][0] = 1;
for (int i = 1; i <= m; i++) f[0][i] = 1;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if(f[i][j] < 0) continue;
// if (f[i - 1][j] != -1 and f[i][j - 1] != -1) f[i][j] = f[i - 1][j] + f[i][j - 1];
// if (f[i - 1][j] == -1 and f[i][j - 1] != -1) f[i][j] = f[i][j - 1];
// if (f[i - 1][j] != -1 and f[i][j - 1] == -1) f[i][j] = f[i - 1][j];
if(f[i][j - 1] != -1) f[i][j] += f[i][j - 1];
if(f[i - 1][j] != -1) f[i][j] += f[i - 1][j];
}
}
cout << f[n][m] << endl;
return 0;
}