#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=11;
bool st[N][N];
int n,m;
int res,cnt;
int x0,y0;
int dx[8]={1,2,2,1,-1,-2,-2,-1},dy[8]={2,1,-1,-2,-2,-1,1,2};
void dfs(int x0,int y0,int cnt)
{
if(cnt==n*m)
{
res++ ;
return ;
}
for(int i=0;i<8;i++)
{
int wx=x0+dx[i],wy=y0+dy[i];
if(wx>=0&&wx<n&&wy>=0&&wy<m)
{
if(!st[wx][wy])
{
st[wx][wy]=1;
dfs(wx,wy,cnt+1);
st[wx][wy]=0;
}
}
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
memset(st,0,sizeof st);
res=0;
cin>>n>>m>>x0>>y0;
st[x0][y0]=true;
dfs(x0,y0,1);
cout<<res<<endl;
}
return 0;
}