#include<bits/stdc++.h>
using namespace std;
long long a[30][30];
struct zb {
int a,b;
} kz1,kz2,kz3,kz4,kz5,kz6,kz7,kz8,n,cll;
bool cd(int i,int j){
if(!( (i==kz1.a &&j==kz1.b )||
(i==kz2.a &&j==kz2.b )||
(i==kz3.a &&j==kz3.b )||
(i==kz4.a &&j==kz4.b )||
(i==kz5.a &&j==kz5.b )||
(i==kz6.a &&j==kz6.b )||
(i==kz7.a &&j==kz7.b )||
(i==kz8.a &&j==kz8.b )||
(i==cll.a &&j==cll.b ))){
cout<<1<<"\n";
return true;
}
}
int main() {
cin>>n.a >>n.b >>cll.a >>cll.b ;
kz1.a =cll.a -1; kz1.b =cll.b -2;
kz2.a =cll.a +1; kz2.b =cll.b -2;
kz3.a =cll.a -2; kz3.b =cll.b -1;
kz4.a =cll.a +2; kz4.b =cll.b -1;
kz5.a =cll.a -2; kz5.b =cll.b +1;
kz6.a =cll.a +2; kz6.b =cll.b +1;
kz7.a =cll.a -1; kz7.b =cll.b +2;
kz8.a =cll.a +1; kz8.b =cll.b +2;
for(int i=0;i<=n.a ;i++){
for(int j=0;j<=n.b ;j++){
if(!cd(i,j)){
i+=1;
j=-1;
continue;
}else{
if(i==0||j==0){
a[i][j]=1;
}else{
a[i][j]=a[i-1][j]+a[i][j-1];
}
}
}
}
cout<<a[n.a ][n.b ];
}