#include<iostream>
using namespace std;int step_x[]={-1,-2,-2,-1,1,2,2,1};int step_y[]={-2,-1,1,2,-2,-1,1,2};
bool vis[25][25];int n,m,x,y;longlong dp[25][25];voidinit(){vis[x][y]= true;for(int i =0; i <8; i++){int xx = x + step_x[i];int yy = y + step_y[i];if(xx>=0&&xx<=n&&yy>=0&&yy<=m){vis[xx][yy]= true;}}/*第0行,第0列,初始化,如果遇到一個馬控制點,從 這個馬控制點 開始 都不可達!!!*/for(int i =0; i <= n; i++){if(!vis[i][0])dp[i][0]=1;elsebreak;}for(int i =0; i <= m; i++){if(!vis[0][i])dp[0][i]=1;elsebreak;}}intmain(){cin>>n>>m>>x>>y;init();for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){if(!vis[i][j])dp[i][j]= dp[i-1][j]+ dp[i][j-1];}}cout<<dp[n][m]<<endl;return0;}
#include<iostream>
using namespace std;typedeflonglong LL;int step_x[]={-1,-2,-2,-1,1,2,2,1};int step_y[]={-2,-1,1,2,-2,-1,1,2};
bool vis[25][25];int n,m,x,y;
LL dp[25][25];voidinit(){dp[1][1]=1;vis[x][y]= true;for(int i =0; i <8; i++){int xx = x + step_x[i];int yy = y + step_y[i];if(xx>=0&&xx<=25&&yy>=0&&yy<=25){vis[xx][yy]= true;}}}intmain(){cin>>n>>m>>x>>y;n++,m++;x++,y++;init();for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){if(!vis[i][j])dp[i][j]=max(dp[i-1][j]+dp[i][j-1],dp[i][j]);}}cout<<dp[n][m]<<endl;return0;}