#P1001. 「YSOI R1」蹦蹦消消乐

「YSOI R1」蹦蹦消消乐

题目背景

可莉在果酒湖边玩自制的蹦蹦消消乐游戏,因为湖里的鱼被炸光了。

题目描述

蹦蹦炸弹们被排成 NN1010 列的矩阵。有些地方是空的(用 00 表示),大部分位置上有各种各样的蹦蹦炸弹(用 1199 中的数字表示)。因为如果炸弹下面出现空的地方,那么炸弹就会往下掉。所以游戏开始时,初始状态上没有哪个炸弹下方会有空的地方。接下来开始游戏,如果同一种炸弹构成的连通区域格子数不小于 KK(水平或垂直相邻的两个格子中炸弹类型一样,就称这两个格子是连通的),那么这些同类型炸弹就会爆炸变成空位(如果同时有多种炸弹都满足连通区域不小于 KK 这个条件,那么这些炸弹就会同时爆炸)。那么此时上面垂直位置的炸弹就会落下来填充这些空着的地方。这样一来,有可能会再次出现同样炸弹的连通区域不小于 KK,那么会再次爆炸,上面的再次下落,一直这样下去,直到不存在同样炸弹的连通区域满足大于等于 KK 这个条件。

现在,可莉给定了游戏的初始状态,请你在 1s1s 内输出游戏的结束状态,否则就把你炸飞。

输入格式

第一行两个正整数 NNKK

接下来 NN 行,每行 1010 个从 0099 的正整数,表示炸弹的类型或空格。

输出格式

NN1010 列,表示最后爆炸完的结果。

样例组

#11 输入

6 3
0000000000
0000000300
0054000300
1054502230
2211122220
2211111223

#11 输出

0000000000
0000000000
0000000000
0000000000
0054000000
1054500000

#22 输入

10 2
1000200000
2007401000
7016644000
6332123500
5367633723
3551643232
4241624215
6761211156
4447343155
4734232617

#22 输出

0000000000
0000000000
1000000000
2000000000
7000000000
6010200000
5060400003
3047101505
4062323706
6234232637

数据规模与约定

对于 20%20\% 的数据,1n101 \le n \le 10

对于 50%50\% 的数据,1n501 \le n \le 50

对于 100%100\% 的数据,1n1001 \le n \le 1001K10×N1\le K \le 10 \times N