#D0020. 石子下落

石子下落

题目描述

有一个 nnmm 列的网格。网格中的格子有三种类型:

  • 一个空的格子,用 . 表示;
  • 一个石子,用 * 表示;
  • 一个障碍物格子,用 'o' 表示。

一个石子会一直垂直下落,直到它到达了网格的底端(第 nn 行)或者它碰到了一个石子或者障碍物格子(到达了一个石子或者障碍物格子上方的那个格子)。

告诉你初始时候的网格。你需要模拟网格中石子下落的过程,并输出最终网格的样子。

输入格式

第一行,两个整数 nnmm,表示网格的行数和列数。

接下来 nn 行,每行包含一个长度为 mm 的字符串,表示这个网格。

输出格式

输出共 nn 行,每行包含一个长度为 mm 的字符串,表示最终的网格。

input1

6 10
.*.*....*.
.*.......*
...o....o.
.*.*....*.
..........
.o......o*

output1

..........
...*....*.
.*.o....o.
.*........
.*......**
.o.*....o*

input2

2 9
...***ooo
.*o.*o.*o

output2

....**ooo
.*o**o.*o

input3

5 5
*****
*....
*****
....*
*****

output3

.....
*...*
*****
*****
*****

说明/提示

数据规模与约定

  • 对于 30%30\% 的数据,n,m20n,m \le 20
  • 对于 60%60\% 的数据,n,m200n,m \le 200
  • 对于 100%100\% 的数据,1n,m20001 \le n,m \le 2000