У комп'ютерному зорі об'єкти інтересу часто представляють як області з у бінарному зображенні (бітовій матриці). Важливим завданням при ідентифікації об'єктів є трасування контуру (також званого межею) об'єкта.
Ми припускаємо, що на межах бітмапи немає жодних . Щоб обвести контур одного об'єкта, можна скористатися процедурою, що називається алгоритм Мура для відстеження межі, наступним чином:
Скануємо від верхнього ряду до нижнього, зліва направо у кожному ряду, доки не знайдемо піксель об'єкта. Назвемо цей піксель b_0, а його західного сусіда з фону — c_0.
Перевіряємо сусідів b_0, починаючи з c_0 і рухаючись за годинниковою стрілкою. Нехай b_1 — це перший зустрінутий сусідній піксель об'єкта, а c_1 — сусід з фону, що безпосередньо передує b_1. Зберігаємо позиції b_0 і b_1, додаємо b_0 та b_1 до контуру.
Присвоюємо b = b_1, c = c_1.
Позначимо сусідів , починаючи з та рухаючись за годинниковою стрілкою, як n_1, n_2, , n_8. Знаходимо першого сусіда-об'єкта n_k у цій послідовності.
Присвоюємо b = n_k, c = n_{k-1}. Додаємо до контуру.
Повторюємо кроки і , доки b = b_0 і наступна знайдена точка контуру — b_1. Останні дві точки b_0 та b_1 повторюються і не повинні заноситись у контур знову.
Перші кроки алгоритму ілюстровано на рисунку нижче (у цій бітмапі тільки пікселі на межі мають значення ):

У цій задачі вам задано бітмапу з не більше ніж рядками та стовпцями. Бітмапа містить кілька об'єктів. Ви маєте визначити довжину контуру кожного об'єкта в бітмапі, скориставшись викладеною вище процедурою. У бітмапі яскравість пікселя означає фон, а — піксель об'єкта. Два пікселі з інтенсивністю належать одному об'єкту, якщо існує шлях з одного пікселя до іншого, що складається лише з , і шлях дозволяє рухатися у будь-якому з напрямків компаса. На межах бітмапи (перший рядок, останній рядок, перший стовпець, останній стовпець) містяться лише фонові пікселі. Будь-який об'єкт, що складається з менше ніж пікселів, слід ігнорувати, оскільки це, ймовірно, шум. Жоден з об'єктів у бітмапі не містить отворів. Еквівалентно, для будь-якої пари фонових пікселів у бітмапі існує шлях із фонових пікселів, що використовує лише основні напрямки компаса (, , , ).
Вхідний файл складається з кількох випадків. Кожний випадок починається з двох додатних цілих чисел, які вказують кількість рядків () і кількість стовпців () у бітмапі. Далі наведено рядків, кожен з яких містить рядок з та довжиною . Введення завершиться випадком, що починається з R = C = 0. Цей останній випадок обробляти не потрібно.
Для кожного випадку надрукуйте номер випадку у окремому рядку. У наступному рядку виведіть довжини контурів усіх знайдених у бітмапі об'єктів, відсортовані у зростаючому порядку. Всі довжини контурів у цьому рядку розділяйте одним пробілом. Якщо у бітмапі немає жодного об'єкта, що складається принаймні з пікселів, виведіть у рядку no objects found.
Приклад 1