[CCO2019] Sirtet
题目描述
在一款新型的无人游戏(话说这算游戏吗)Sirlet中,界面是一个矩形网格。在游戏开始之前,一些方格是空白的(表示为`.`),而一些方格是被填充的(表示为`#`)。那些被填充的方格代表一组物体,而相邻的被填充方格被视作同一物体。
例如,这个初始网格:
```
..#.
##.#
.##.
#...
#...
```
包含以下4个物体:
```
## # # #
## #
```
当游戏开始时,每个物体开始以相同的速度匀速下落,它们持续下落,直到它接触到最下面的一行或是另一物体的顶部,而在接触时停止下落。
求网格的最终状态。
输入输出格式
输入格式
第一行,两个正整数$N M$(用空格隔开)。
随后$N$行,每行$M$个字符,代表网格。它们或是`#`,或是`.`,含义见题目描述。
输出格式
$N$行,每行$M$个字符,代表网格的最终状态。它们或是`#`,或是`.`,含义见题目描述。
输入输出样例
输入样例 #1
5 4
..#.
##.#
.##.
#...
#...
输出样例 #1
....
....
###.
###.
#..#
说明
### 限制
$ 1 \le N \times M \le 10^6 $
### 子任务
Subtask 1 (40分):$ 1 \le N \times M \le 2000 $
Subtask 2 (24分):$ M = 2 $
Subtask 3 (36分):没有附加限制。