#include <bits/stdc++.h>
using namespace std;
unsigned bx,by,hx,hy,nx,ny;
long long dp[25][25]={0};
const short int move[8][2] = {{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,1},{-1,2}};
int main(){
cin>>bx>>by>>hx>>hy;
dp[hx][hy] = -1;
for (int i=0;i<8;i++){
nx = hx+move[i][0];
ny = hy+move[i][1];
if (nx>=0&&nx<=bx&&ny>=0&&ny<=by){
dp[nx][ny] = -1;
}
}
if (dp[0][0] == -1){
cout<<0;return 0;
}
dp[0][0] = 1;
for (int i=1;i<=bx;i++){
if (dp[i-1][0]!=-1&&dp[i][0]!=-1) dp[i][0] = dp[i-1][0];
}
for (int i=1;i<=by;i++){
if (dp[0][i-1]!=-1&&dp[0][i]!=-1) dp[0][i] = dp[0][i-1];
}
for (int i=1;i<=bx;i++){
for (int j=1;j<=by;j++){
if (dp[i][j] == -1) continue;
if (dp[i-1][j] != -1) dp[i][j] += dp[i-1][j];
if (dp[i][j-1] != -1) dp[i][j] += dp[i][j-1];
}
}
cout<<dp[bx][by];
return 0;
}