在一个名为 “Color Fall” 的小游戏中,屏幕上显示一个由多种颜色的方块组成的矩形游戏界面。
该矩形游戏界面有 N 行和 10 列,每个格子里可能包含一个颜色方块(用数字字符 1\dots 9 表示),也可能为空白(用数字字符 0 表示,表示该位置没有颜色方块)。
在某个时刻,玩家不操作界面,游戏界面中的方块,将按照如下顺序产生 “自动消除” 和 “方块掉落” 的两个动作。
方块消除
游戏自动判断,矩形界面中是否存在方块数量 \ge K 的同色的方块群。
如果两个方块在水平方向或垂直方向上相邻,并且颜色相同,它们就属于同一片同色方块群。如果当前方块群中方块数量 \ge K ,所有这些方块都同时会消失,变成空白。
方块掉落
当满足条件的方块群同时完成方块消除动作之后,剩余的颜色方块,会因重力作用向下“掉落”,下方没有方块的空白位置会被颜色方块填充,所以任何颜色方块的下方一定不会是空白。
当然,如果方块消除动作完成后,所有颜色方块下方都不存在空白位置,则不会产生方块掉落的动作。
当方块掉落动作完成之后,游戏会继续判断是否满足“方块消除”的条件,这一过程会一直持续,直到屏幕上的矩形游戏界面中,无法进行方块消除时,游戏结束。
给定一块屏幕中显示的矩形游戏界面的初始状态,输出这些过程发生之后屏幕中矩形游戏界面的最终状态。
输入的第一行包含 N 和 K。
以下 N 行,每行输入 10 个数字字符,给出了游戏屏幕的初始状态。
输出 N 行,描述游戏屏幕的最终状态。
6 3 0000000000 0000000300 0054000300 1054502230 2211122220 1111111223
0000000000 0000000000 0000000000 0000000000 1054000000 2254500000
12 2 5367633723 3551643232 4241624215 6761211156 4447343155 4734232617 2131126744 5261165372 7213114444 1525235331 4173633747 4525634375
0000000000 0000000000 0000000000 0000000000 0000000003 0000000002 5000000005 3004000006 4063000007 6345000031 7173000747 1525260375
15 4 0000000000 5000000000 5200600305 4407220205 5663472417 2344725142 6116436163 2235625436 3647522254 4345331546 6742447444 3374342454 1162627553 1757136345 4436423211
0000000000 5000000000 5200600000 4407200000 5663400005 2344722005 6116475007 2235626302 3647535203 4345331416 6742447144 3374342166 1162627433 1757136345 4436423211
在样例 1 中,K=3。那么存在大小至少为 K 的颜色为 1 的方块群,同样有一个颜色 2 的方块群。当它们同时被消除之后,屏幕暂时成为了这样:
0000000000
0000000300
0054000300
1054500030
2200000000
0000000003
然后,由于重力效果,方块下落形成这样的布局:
0000000000
0000000000
0000000000
0000000000
1054000300
2254500333
再一次地,出现了一个大小至少为 K 地方块群(颜色为 3)。这个区域消除后,无法产生方块掉落的动作,因此得到最终的屏幕状态:
0000000000
0000000000
0000000000
0000000000
1054000000
2254500000
对于 20\% 的数据,满足屏幕上的方块群只能进行 1 次方块消除的动作。
对于 30\% 的数据,满足 1 \le N \le 30,1 \le K \le 5。
对于 100\% 的数据,满足 1 \le N \le 100,1\le K \le 10 \times N。