Дана матрица из \(n\) строк и \(m\) столбцов, каждая ячейка которой имеет один из трех типов:
- Пустая ячейка (обозначается как «.»).
- Камень (обозначается как «*»).
- Препятствие (обозначается как строчная буква латинского алфавита «o»).
Каждый камень начинает падать, пока не окажется на полу (в нижней строке матрицы), в ячейке над препятствием, или в ячейке над другим камнем, который уже закончил падение. (Другими словами, все камни начинают падать и падают, пока под ними пустые ячейки.)
Просимулируйте процесс и выведите состояние матрицы после того, как все камни закончат падать.
Выходные данные
Для каждого набора входных данных выведите матрицу из \(n\) строк и \(m\) столбцов, описывающую результат процесса.
Не обязательно выводить новую строку после каждого набора входных данных; в примерах из условия она выводится для наглядности.
| № | Входные данные | Выходные данные |
|
1
|
3
6 10
.*.*....*.
.*.......*
...o....o.
.*.*....*.
..........
.o......o*
2 9
...***ooo
.*o.*o.*o
5 5
*****
*....
*****
....*
*****
|
..........
...*....*.
.*.o....o.
.*........
.*......**
.o.*....o*
....**ooo
.*o**o.*o
.....
*...*
*****
*****
*****
|