printРайонно-городские командные соревнования

print2. Кроссворд

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Вы нарисовали сетку для кроссворда, и теперь необходимо заполнить его словами. Для этого необходимо знать, сколько в кроссворде слов определенной длины. Напишите программу, выполняющую такие расчеты.
Во входном файле несколько тестов. В первой строке каждого теста содержатся два целых числа `N` и `M` через пробел – размеры сетки кроссворда (`3\ ≤\ N\ ≤\ 50`, `3\ ≤\ M\ ≤\ 50`). Далее следует `N` строк, содержащих по `M` символов '.' (пустая клетка) и 'X' (черная, неиспользуемая клетка). Строка, содержащая "0 0", сигнализирует о завершении набора тестов и не обрабатывается.
В выходной файл для каждого теста вывести строку, содержащую информацию о количестве слов каждой длины в форме `L-K` через пробел в порядке возрастания `L`, где `L` – длина слова (`L\ ≥\ 2`), `K` – количество слов такой длины (`K\ >\ 0`).

Пример ввода

5 6
X....X
X.XX.X
...X..
X.XX.X
..X...
3 3
...
...
...
0 0

Вывод для примера

2-2 3-2 4-1 5-2
3-6

loading