// 八皇后遍历题型:整个棋盘是一个状态,需要恢复现场(回溯法)
#include <iostream>
#include <cstring>
using namespace std;
const int N = 12;
int n, m, sx, sy;
int res; // 用于统计全局答案
bool g[N][N];
int dx[] = {1, 1, -1, -1, 2, 2, -2, -2};
int dy[] = {2, -2, 2, -2, 1, -1, 1, -1};
// dfs功能:返回有多少中途径能走完棋盘
void dfs(int u, int x, int y) {
if (u == n * m) {
res ++;
return;
}
for (int d = 0; d < 8; d ++) {
int a = x + dx[d], b = y + dy[d];
if (0 <= a && a < n && 0 <= b && b < m && g[a][b] == false) {
g[a][b] = true;
dfs(u + 1, a, b);
g[a][b] = false;
}
}
}
int main() {
int T;
cin >> T;
while (T --) {
cin >> n >> m >> sx >> sy;
memset(g, false, sizeof g);
res = 0; // 每组初始化res
g[sx][sy] = true;
dfs(1, sx, sy);
cout << res << endl;
}
return 0;
}