1456. 棋子翻转

CGY 是一个下棋高手,现有一个 4 \times 4 的棋盘,上面放着 16 颗双面棋,一面是黑色,另一面是白色。CGY 可以主动翻转棋盘中的任意一颗棋子,某颗棋子被主动翻转后,会使它上下左右四颗棋子被动翻转(如果存在的话)。当所有棋子都白色朝上或者黑色朝上时,则视作目标完成。GGY 觉得这个问题没有挑战性,现在请你设计程序计算出完成目标的最小主动翻转次数。

输入

输入包括 4 行,每行包括 4 个字符 a 或者 ba 表示白色,b 表示黑色。

输出

输出包括一行,输入完成目标的最小主动翻转次数,如果无论怎么样翻转都无法完成目标则输出 Impossible

样例

标准输入 复制文本
bbbb
bbbb
bbab
baaa
标准输出 复制文本
1

来源

2019 欢送 (迫害) CGY 杯程序设计竞赛

登录以提交代码。
单点时限 1 秒
内存限制 512 MB
提交 24
通过 14