#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
using namespace std;
const int N = 10;
int n, m, x, y, res = 0;
bool st[N][N];
int dx[8] = {1, 1, 2, 2, -2, -2, -1, -1}, dy[8] = {2, -2, 1, -1, 1, -1, 2, -2};
void dfs(int x, int y, int last)
{
if(!last)
{
res ++;
return;
}
for(int i = 0; i < 8; i ++)
{
int px = x + dx[i], py = y + dy[i];
if(px >= 0 && px < n && py >= 0 && py < m && !st[px][py])
{
st[px][py] = true;
dfs(px, py, last - 1);
st[px][py] = false;
}
}
}
int main()
{
int t;
scanf("%d", &t);
while(t --)
{
scanf("%d%d%d%d", &n, &m, &x, &y);
memset(st, false, sizeof st);
st[x][y] = true;
dfs(x, y, n * m - 1);
printf("%d\n", res);
res = 0;
}
return 0;
}