大盗 Jom Codd 能够潜入他人的梦境。由于梦境观测技术尚不成熟,Codd 将梦境视为一个由单位格组成的“梦境网格”,每个格子要么是白色,要么是黑色。
给定一个初始的梦境网格,Codd 可以通过将每个白色格子替换为一个 $2 \times 2$ 的白色格子网格,并将每个黑色格子替换为一个 $2 \times 2$ 的黑色格子网格来“深入”梦境;这会产生一个大四倍的新梦境网格。他可以从该网格再次深入,以此类推。例如,给定以下初始梦境网格:
BBB BWB BBB
深入一次后产生的新梦境网格为:
BBBBBB BBBBBB BBWWBB BBWWBB BBBBBB BBBBBB
再次深入后产生的新梦境网格为:
BBBBBBBBBBBB BBBBBBBBBBBB BBBBBBBBBBBB BBBBBBBBBBBB BBBBWWWWBBBB BBBBWWWWBBBB BBBBWWWWBBBB BBBBWWWWBBBB BBBBBBBBBBBB BBBBBBBBBBBB BBBBBBBBBBBB BBBBBBBBBBBB
以此类推。
Codd 刚刚潜入一个梦境并观察到了它的初始梦境网格。他正在执行一项非常艰巨的任务,并且知道他需要多次深入梦境。为了辅助导航,他正在观察初始梦境网格中的各种“模式”。一个模式由一组通过共享边连接的格子(共享角不算连接)及其颜色组成。一个模式可能包含内部空隙(只要模式的格子是一个连通的整体);这些空隙不被视为模式的一部分。两个模式相同,当且仅当它们具有相同数量和排列的格子(不经过翻转或旋转),且颜色相同。
例如,在上述网格中,初始网格中存在以下 8 格模式:
BBB B B BBB
它在深入一次后不存在,但在深入两次、三次以及此后每一次更深的梦境网格中都存在。
Codd 想要从初始梦境网格中找到最大的模式,该模式在至少一古戈尔($10^{100}$)个更深的梦境网格中出现。对于给定的例子,上述模式是满足条件的最大模式。尽管它在深入一次后不存在,但它在至少一古戈尔个更深的层级中存在。其他较小的模式也满足此条件,但不存在 9 格的模式满足此条件;唯一可能的 9 格模式必须与整个初始梦境网格完全相同,而该模式永远不会出现在任何更深的梦境网格中,更不用说在一古戈尔个网格中出现了。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个整数 $R$ 和 $C$,分别表示梦境网格的行数和列数。每个测试用例接下来有 $R$ 行,每行包含 $C$ 个字符;每个字符要么是 B 要么是 W。这些行直接表示梦境网格。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是满足 Codd 上述要求且至少存在一个模式的最大可能大小。
数据范围
$1 \le T \le 100$。 时间限制:每个测试集 30 秒。 内存限制:1GB。
测试集 1(可见) $1 \le R \le 3$ $1 \le C \le 4$
测试集 2(隐藏) $1 \le R \le 20$ $1 \le C \le 20$
样例
输入 1
5 3 3 BBB BWB BBB 2 3 BBB WBW 1 1 W 3 3 WBW BWB WBW 2 4 BBWW BBWW
输出 1
Case #1: 8 Case #2: 5 Case #3: 1 Case #4: 4 Case #5: 8
说明
样例 #1 即为题目描述中的例子。
在样例 #2 中,一个可能的最大模式是:
BBB WB
另一个同样大小的模式是:
BBB W W
在样例 #3 中,整个初始梦境网格即为最大模式。
在样例 #4 中,注意五个 W 不构成一个有效的模式,因为它们不连通。然而,这是一个最大模式:
WB BW
在样例 #5 中,整个初始梦境网格即为最大模式。注意,尽管该网格恰好是 Codd 从 BW 开始深入后得到的网格,但这无关紧要;Codd 永远不会“变浅”。