У цьому виклику вам надається карта двовимірної місцевості, розглянута збоку. На жаль, деякі частини місцевості плавають у повітрі, а значить, вони зійдуть вниз. Ваше завдання - передбачити, де вони приземляться.
Вхідні дані
Ваш вхід - це одна або кілька рядків, розділених новою лінією однакової довжини, що містять лише символи #
(знак числа, що позначає скелю) або .
(крапка, що означає порожній пробіл).
Вихід
Ваш вихід має той же формат, що і вхідний, але з наступною модифікацією. Розглянемо вхідний рядок як двовимірну сітку гірських порід. Кожна скеля на вході, яка з'єднана з дном сітки шляхом до сусідніх гірських порід, є твердою ; інші породи пухкі . Діагонально сусідні породи не вважаються суміжними. Всі пухкі скелі впадуть прямо вниз і закінчуються як стопка зверху або твердої скелі, або нижнього ряду. Сипучі скелі не прикріплені один до одного, тому вони падають окремо, не як великі утворення. Вихід - отримана сітка.
Приклади
Вхід
..###. .##.#. .#.... .##.#.
не містить пухких гірських порід, тому вихід його ідентичний.
Вхід
...#.. .#..#. .#..## .#...# .##### .#...#
містить одну пухку скелю вгорі, яка падає на тверду скелю під нею. Вихід є
...... .#..#. .#..## .#.#.# .##### .#...#
Вхід
.#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..#
має велику групу пухких скель зліва. Група розпадається, коли гірські породи падають, тому вихід є
.......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..#
Роз'яснення
- Ви можете або взяти вхід зі STDIN і вивести в STDOUT, або записати функцію.
- Це код-гольф, тому найкоротша програма (в байтах) є переможцем.
- Стандартні лазівки заборонені.