#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxx=0x3f3f3f,minn=-0x3f3f3f;
ll n,m,mp[2][22][22]={0},mx,my;
int dp (int x,int y){
if(mp[0][x][y]==-1)return 0;
if(x==0||y==0) return 1;
if(mp[0][x][y])return mp[1][x][y];
mp[1][x][y]= dp(x-1,y)+dp(x,y-1);
return mp[1][x][y];
}
int main(){
cin>>n>>m>>mx>>my;
if(mx>=0&&my>=0)mp[0][mx][my]=-1;
if(mx+1<=n&&mx+1>=0&&my+2<=m&&my+2>=0) mp[0][mx+1][my+2]=-1;
if(mx-1<=n&&mx-1>=0&&my+2<=m&&my+2>=0) mp[0][mx-1][my+2]=-1;
if(mx+1<=n&&mx+1>=0&&my-2<=m&&my-2>=0) mp[0][mx+1][my-2]=-1;
if(mx-1<=n&&mx-1>=0&&my-2<=m&&my-2>=0) mp[0][mx-1][my-2]=-1;
if(mx-2<=n&&mx-2>=0&&my+1<=m&&my+1>=0) mp[0][mx-2][my+1]=-1;
if(mx+2<=n&&mx+2>=0&&my+1<=m&&my+1>=0) mp[0][mx+2][my+1]=-1;
if(mx-2<=n&&mx-2>=0&&my-1<=m&&my-1>=0) mp[0][mx-2][my-1]=-1;
if(mx+2<=n&&mx+2>=0&&my-1<=m&&my-1>=0) mp[0][mx+2][my-1]=-1;
dp(n,m);
cout<<mp[1][n][m];
return 0;
}
记录