Приведение текстовых блоков в порядок
Вы получаете прямоугольный блок текста, состоящий из точек "." и звездочек "*". Две звездочки считаются соединенными, если они находятся рядом по горизонтали или вертикали. Ваша задача — преобразовать каждую звездочку в другой символ в зависимости от её соединений с другими звездочками. Звездочка преобразуется в:
"o" (строчная буква o), если она не соединена ни с одной другой звездочкой,
"-" если она соединена только по горизонтали (слева/справа/слева и справа),
"|" если она соединена только по вертикали (сверху/снизу/сверху и снизу),
"+" в остальных случаях.
Входные данные
Первая строка ввода содержит количество тестов N, где 1 ≤ N ≤ 50.
Каждый тест начинается со строки, содержащей два целых числа h и w, разделенные пробелом. Далее следуют h строк. Каждая строка i, где 1 ≤ i ≤ h, состоит из строки s. Входной текстовый блок представлен вертикальным расположением строк s_1, s_2, ..., s_h.
h — это высота текстового блока, и она удовлетворяет условию 1 ≤ h ≤ 50.
w — это ширина текстового блока, и она удовлетворяет условию 1 ≤ w ≤ 50.
Для каждого i, где 1 ≤ i ≤ h, s_i — это строка длины w, состоящая из точек "." или звездочек "*".
Выходные данные
Для каждого теста выведите h строк длины w, представляющих преобразованный текстовый блок. Напечатайте пустую строку между тестами, но не после последнего теста.