扫雷(Minesweeper)是一款在 20 世纪 80 年代流行起来的电脑游戏,至今仍包含在某些版本的 Microsoft Windows 操作系统中。本题的构思与之类似,但并不要求你玩过扫雷。
在本题中,你在一个由相同单元格组成的网格上进行游戏。每个单元格的内容最初都是隐藏的。网格中有 $M$ 个地雷隐藏在 $M$ 个不同的单元格中。其他单元格中没有地雷。你可以点击任意单元格来揭开它。如果揭开的单元格包含地雷,则游戏结束,你输了。否则,揭开的单元格会显示一个 0 到 8 之间的数字(包含 0 和 8),表示其相邻单元格中包含的地雷数量。如果两个单元格共享一个角或一条边,则它们互为邻居。此外,如果揭开的单元格显示为 0,则该单元格的所有邻居也会被自动揭开,并递归执行此过程。当所有不包含地雷的单元格都被揭开时,游戏结束,你赢了。
例如,棋盘的初始配置可能如下所示('*' 表示地雷,'c' 是第一次点击的单元格):
*..*...**. ....*..... ..c..*.... ........*. ..........
点击的单元格周围没有地雷,因此当它被揭开时,它显示为 0,其 8 个相邻单元格也会被揭开。此过程持续进行,最终得到以下棋盘:
*..*...**. 1112*..... 00012*.... 00001111*. 00000001..
此时,仍有未揭开且不包含地雷的单元格(用 '.' 字符表示),因此玩家必须再次点击才能继续游戏。
你希望尽可能快地赢得游戏。没有什么比一次点击就获胜更快的了。给定棋盘的大小($R \times C$)和隐藏地雷的数量 $M$,是否可能(尽管可能性很小)通过一次点击获胜?你可以选择点击的位置。如果可能,请打印出任何一种有效的地雷配置以及你点击的坐标,并遵循“输出格式”部分的规范。否则,打印 "Impossible"。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来有 $T$ 行。每行包含三个空格分隔的整数:$R$、$C$ 和 $M$。
输出格式
对于每个测试用例,输出一行 "Case #x:",其中 $x$ 是测试用例编号(从 1 开始)。在接下来的 $R$ 行中,输出棋盘配置,每行包含 $C$ 个字符,使用 '.' 表示空单元格,'*' 表示包含地雷的单元格,'c' 表示点击的单元格。
如果没有可能的配置,则输出一行 "Impossible" 代替网格。如果存在多种可能的配置,输出其中任意一种即可。
数据范围
$0 \le M < R \times C$。
小数据集
$1 \le T \le 230$。 $1 \le R, C \le 5$。
大数据集
$1 \le T \le 140$。 $1 \le R, C \le 50$。
样例
输入 1
5 5 5 23 3 1 1 2 2 1 4 7 3 10 10 82
输出 1
Case #1: Impossible Case #2: c . * Case #3: Impossible Case #4: ......* .c....* ....... ..*.... Case #5: ********** ********** ********** ****....** ***.....** ***.c...** ***....*** ********** ********** **********