题目描述
翻转游戏是在一个长方形 $4 \times 4$ 棋盘共 $16$ 个双面方块的游戏。每一块的一个面是白色的,另一个是黑色的,每一块要么是黑色或白色的一面向上。每一次你可以选择 $16$ 个方块中的任意一个方块,将该方块,以及它的上下左右,一共五个方块都翻转一次。如果它们都存在的话。
1. 选择 $16$ 个方块中的任意一个。
2. 将该方块以及它的上下左右一共五个方块都翻转一次,如果它们都存在的话。
如下面例子:
```
bwbw
wwww
bbwb
bwwb
```
这里的 `b` 表示方块的黑色面朝上,`w` 表示方块的白色面朝上。如果我们选择翻转第三行第一列的方块,然后棋盘将变成:
```
bwbw
bwww
wwwb
wwwb
```
游戏的目标是使得所有朝上的一面的颜色都相同,即都为白色或都为黑色。你要编写一个程序,使得翻转的次数最小。
![](/CLanguage/userfiles/images/1227.jpg)
输入格式
第一行包含一个整数 $T$,表示测试数据组数。
每组测试数据包含 $4$ 行,每行 $4$ 列,表示游戏初始的状态。
每组测试数据之间有一个空行。
- $1 \le T \le 10$
- 状态仅由 `b` 和 `w` 组成
输出格式
对于每组数据,在一行内输出达到目标的最少翻转次数。
如果永远无法翻到,输出 `Impossible`。
输出每组之间不需要空行。
样例输入 #1
2
bwbw
wwww
bbwb
bwwb
bwwb
bbwb
bwwb
bwww