#1978. 连连看

连连看

题目描述

有时大型游戏玩腻味了,小Z\red{Z}也会玩玩弱智级的小游戏,比如连连看。但小Z\red{Z}眼力不行,常常得分很低。于是,他找到了你,希望你能帮他找出一种获胜方案。 连连看的游戏规则很简单:玩家可以将 2\red{2 }个相同图案的牌连接起来,连接线不多于 3\red{3 }条线段,就可以成功将两个牌消除。将游戏界面上的牌全部消除掉,玩家就胜利了。

输入格式

输入文件card.in\red{card.in}的第一行为两个正整数m\red{m}n\red{n,}表示连连看游戏的矩阵大小。 接下来的m\red{m}行,每行n\red{n}个英文大写字母(为了计算方便,只用A\red{A}~E\red{E}五个字母),表示牌的种类,相同字母表示同种牌。

输出格式

输出文件card.out\red{card.out}。 若能获胜,则输出共一行,包括m×\red{m×}n/2\red{n/2}个英文大写字母,第i\red{i}个字母表示第i\red{i}次消除的牌的种类。若有多解,输出字典顺序最小的解。 若不能获胜,则输出共一行,包括字符串"Gameover.\red{Game over.}"。

样例

输入样例1

2 1
A
A

输出样例1

A

输入样例2

2 1
A
B

输出样例2

Game over

提示

100%\red{100\%}的数据满足:m×\red{m×}n<=12\red{n<=12}