#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int H,W; cin >> H >> W; vector> already(H,vector(W)); int sx,sy,gx,gy; cin >> sx >> sy >> gx >> gy; sx--; sy--; gx--; gy--; int answer = 0; vector> dxy = {{-1,0},{0,1},{1,0},{0,-1}}; auto dfs = [&](auto dfs,int x,int y,int bx,int by) -> void { for(auto [dx,dy] : dxy){ int nx = x+dx,ny = y+dy; if(nx < 0 || ny < 0 || nx >= H || ny >= W) continue; if(bx == nx && by == ny) continue; if(already.at(nx).at(ny)) return; } if(x == gx && y == gy){answer++; return;} already.at(x).at(y) = true; for(auto [dx,dy] : dxy){ int nx = x+dx,ny = y+dy; if(nx < 0 || ny < 0 || nx >= H || ny >= W) continue; if(already.at(nx).at(ny)) continue; dfs(dfs,nx,ny,x,y); } already.at(x).at(y) = false; }; dfs(dfs,sx,sy,-1,-1); cout << answer << endl; }