两兄弟 Aldo 和 Bondan 因 COVID-19 疫情导致城市再次封锁,被困在家中。他们已经结束了学期,正在度假,但如果不能出门,又能享受什么样的假期呢?然而,无聊确实激发了创造力。他们在无聊的假期中创造了一个新游戏。
该游戏在一个 $R$ 行 $C$ 列的棋盘上进行,每个格子包含零个或一个棋子。每个棋子被涂上 26 种颜色之一,用 'a' 到 'z' 的字符表示。棋盘上至少有一个棋子。
两名对手轮流进行游戏。在每一轮中,玩家选择一个棋子并将其移动到相邻的格子(即北、南、西或东方向),该格子不一定是空的。当且仅当玩家将颜色为 $x$ 的棋子移动到已经包含颜色为 $x$ 的棋子的格子时,该移动被称为“好棋”(good move)。游戏的目标是尽可能多地获得“好棋”。获得“好棋”次数严格更多的玩家赢得游戏。如果两名玩家获得的“好棋”次数相同,则为平局,无人获胜。
这个游戏可以无限期地进行下去。然而,Aldo 和 Bondan 同意总共进行 $10^{100}$ 次移动,由 Aldo 先手。
Bondan 认为这种游戏很无聊,所以他决定懒散地玩。每当轮到 Bondan 时,他都会选择 Aldo 在上一回合刚刚移动过的同一个棋子,并将其随机移动到相邻的格子。
尽管如此,Bondan 并不喜欢输。在游戏开始前,他可能需要通过改变棋盘大小或移动棋子的初始位置来调整棋盘,使得即使 Bondan 懒散地玩,Aldo 赢得游戏的概率也恰好为零。具体来说,棋盘可以从 $R \times C$ 扩展为 $R' \times C'$,其中 $R' \geq R$ 且 $C' \geq C$,并且每个棋子的初始位置可以移动到另一个格子,同时确保每个格子最多包含一个棋子。不能丢弃任何棋子,也不能向棋盘添加新棋子。
你的任务是找到一种新的棋盘设置,使得即使 Bondan 懒散地玩,Aldo(先手)赢得总共 $10^{100}$ 次移动的游戏的概率为零。新的棋盘设置应具有最小的单元格总数。如果存在多个解决方案,你只需要输出其中任意一个。
输入格式
输入的第一行包含两个整数 $R$ 和 $C$ ($1 \leq R, C \leq 1000$),分别表示棋盘的初始行数和列数。保证棋盘上至少有 2 个格子。接下来的 $R$ 行,每行包含 $C$ 个字符,表示初始棋盘状态。字符 '.' 表示空单元格,小写字母('a'-'z')表示具有该颜色的棋子。保证棋盘上至少有 1 个棋子。
输出格式
输出的第一行包含两个整数 $R'$ 和 $C'$,分别表示新棋盘的行数和列数。接下来的 $R'$ 行,每行包含 $C'$ 个字符,表示新棋盘状态。字符 '.' 表示空单元格,小写字母('a'-'z')表示具有该颜色的棋子。新棋盘应保证即使 Bondan 懒散地玩,Aldo(先手)赢得总共 $10^{100}$ 次移动的游戏的概率为零。它应具有最小的单元格总数,并拥有与初始棋盘相同的棋子集合。
样例
输入 1
2 3 ab. c.d
输出 1
2 3 ab. c.d
说明 1
没有两个棋子颜色相同,因此任何玩家都不可能获得“好棋”。Aldo 无法赢得此游戏。
输入 2
2 3 aa. c.d
输出 2
2 3 a.a c.d
输入 3
1 2 oo
输出 3
1 3 o.o