#10820. 魔法独角兽

魔法独角兽

魔法独角兽

背景故事

在一个魔法世界里,有一只被赋予特殊能力的独角兽,它的使命是通过跳跃遍历一张魔法棋盘的每一个格子,找到所有可能的路径。你的任务是帮助它计算出完成使命的所有可能跳跃路径!

描述

在一个魔法棋盘上,有一只会跳跃的独角兽,它的移动规则类似于中国象棋中的“马”,即以“日”字形跳跃。独角兽的任务是从棋盘上的一个指定起始位置出发,按照规则跳跃,遍历棋盘上的每一个格子且不能重复经过同一个格子。

请编写一个程序,给定棋盘的大小和独角兽的起始位置,计算独角兽有多少种不同的路径可以遍历棋盘上的所有格子。如果无法完成遍历,则输出 0。


输入格式

第一行包含一个整数 T T T<10 T < 10 ),表示测试数据的组数。

接下来的 T T 行,每行包含四个整数 n,m,x,y n, m, x, y ,分别表示棋盘的行数、列数以及独角兽的起始位置坐标 (x,y) (x, y) (满足 0xn1 0 \leq x \leq n-1 0ym1 0 \leq y \leq m-1 ,且 n,m5 n, m \leq 5 )。


输出格式

对于每组测试数据,输出一行,为一个整数,表示独角兽能遍历棋盘的所有格子的路径总数。如果无法遍历一次,则输出 0。


样例

输入样例

1
5 4 0 0

输出样例

32