#include<stdio.h>#include<string.h>#define maxn 10int arr[maxn +5][maxn +5];//方向数组int dir[8][2]={{-2,1},{-2,-1},{2,-1},{2,1},{-1,-2},{-1,2},{1,-2},{1,2}};int n, m, sx, sy, t;int ans =0;voiddfs(int x,int y,int cnt){if(x <0|| x >=n || y <0|| y >= m)return;if(arr[x][y])return;if(cnt == n * m){
ans +=1;return;}
arr[x][y]=1;for(int k =0; k <8; k++){int dx = x + dir[k][0];int dy = y + dir[k][1];dfs(dx, dy, cnt +1);}
arr[x][y]=0;}intmain(){scanf("%d",&t);while(t--){memset(arr,0,sizeof(arr));scanf("%d%d%d%d",&n,&m,&sx,&sy);int cnt =1;dfs(sx, sy, cnt);printf("%d\n", ans);
ans =0;}return0;}