#include const int N = 20 + 10; using namespace std; int n, m, x, y; long long f[N][N]; bool g[N][N]; int c[9] = {0, 1, 1, -1, -1, 2, 2, -2, -2}, d[9] = {0, -2, 2, -2, 2, 1, -1, -1, 1}; int main() { cin >> n >> m >> x >> y; memset(g, 1, sizeof(g)); g[x][y] = 0; for (int i = 1; i <= 8; ++ i) { if (x + c[i] < 0 || y + d[i] < 0) continue; g[x + c[i]][y + d[i]] = false; } f[0][0] = 1; for (int i = 1; i <= m; ++ i) { if (g[0][i] == 0) break; else f[0][i] = f[0][i - 1]; } for (int i = 1; i <= n; ++ i) { if (g[i][0] == 0) break; else f[i][0] = f[i - 1][0]; } for (int i = 1; i <= n; ++ i) for (int j = 1; j <= m; ++ j) if (g[i][j]) f[i][j] = f[i - 1][j] + f[i][j - 1]; cout << f[n][m] << endl; return 0; }