给定一个 $m$ 行 $n$ 列的方格矩阵,其中的部分格子已经着色(黑色或白色)。
现在你需要对剩余的格子进行着色(黑色或白色),使得着色后的矩阵满足下列两个条件:
- 所有黑色格子相互连通,所有白色格子相互连通。下面两个矩阵中,左侧矩阵不满足此条件,右侧矩阵满足此条件。
- 不会存在 $2 \times 2$ 的子矩阵满足四个格子颜色完全相同。下面两个矩阵中,左侧矩阵不满足此条件,右侧矩阵满足此条件。
请问共有多少种不同的着色方案,并输出任意一种可行方案。
注意,你不能修改已经着色的格子的颜色,并且所有格子都必须着色,
输入格式
第一行包含一个整数 $T$,表示共有 $T$ 组测试数据。
每组数据第一行包含两个整数 $m,n$。
接下来 $m$ 行,每行包含 $n$ 个字符。#
表示黑色格子,o
表示白色格子,.
表示还未着色格子。
输出格式
对于每组数据,首先输出一行一个整数,表示着色方案数。
如果方案数不小于 $1$,则输出任意一种合理方案。
每组数据输出完毕后,输出一个空行。
数据范围
$1 \le T \le 100$,
$2 \le M,N \le 8$
输入样例:
4
3 3
o..
.##
...
5 5
..#..
.....
....o
o....
.#...
7 5
.....
..o..
#....
.....
..o..
...#.
o....
2 3
###
oo#
6 8
........
........
........
........
.#......
........
输出样例:
4
oo#
o##
oo#
0
176
#####
#ooo#
###oo
#o##o
#oooo
####o
ooooo
1
###
oo#
71582
#ooooooo
#o#####o
#ooooo#o
#o#o#o#o
#######o
#ooooooo