#include<iostream>
using namespace std;
long long map1[50][50];//两边从10开始访问
int sum;
int bx,by;
int main(){
int horsey,horsex;
cin>>by>>bx>>horsey>>horsex;
horsey+=10;
horsex+=10;
by+=11;
bx+=11;
map1[10][10]=1;
for(int i=10;i<by;i++){
for(int j=10;j<bx;j++){
if(i==10&&j==10)
continue;
map1[i][j]=map1[i-1][j]+map1[i][j-1];
map1[horsey-2][horsex+1]=0;
map1[horsey-1][horsex+2]=0;
map1[horsey+1][horsex+2]=0;
map1[horsey+2][horsex+1]=0;
map1[horsey+2][horsex-1]=0;
map1[horsey+1][horsex-2]=0;
map1[horsey-1][horsex-2]=0;
map1[horsey-2][horsex-1]=0;
map1[horsey][horsex]=0;
// for(int i=10;i<by;i++){
// for(int j=10;j<bx;j++){
// cout<<map1[i][j]<<" ";
// }
// cout<<endl;
// }
// cout<<endl;
}
}
cout<<map1[by-1][bx-1];
return 0;
}