Стародавні повідомлення#2283

Стародавні повідомлення

3 секунди
256 мегабайтів
Складна

Щоб зрозуміти ранні цивілізації, археологи часто вивчають тексти, написані давніми мовами. Одна з таких мов, якою користувалися в Єгипті понад років тому, базується на символах, які називають ієрогліфами. На рисунку зображено шість ієрогліфів та їхні назви. У цій задачі вам потрібно написати програму для розпізнавання цих шести символів.

Рисунок : Шість ієрогліфів

Вхідні дані

Вхідні дані складаються з кількох тестових випадків, кожен з яких описує зображення, що містить один або кілька ієрогліфів, вибраних із тих, що показані на рисунку . Зображення задано послідовністю горизонтальних рядків сканування, які складаються з чорних пікселів (позначаються ) і білих пікселів (позначаються ). У вхідних даних кожен рядок сканування закодований у шістнадцятковому записі. Наприклад, послідовність пікселів (один чорний піксель, потім два білих, і так далі) у шістнадцятковій формі записується як . У шістнадцятковому представленні використовуються лише цифри та малі літери від до . Перший рядок кожного тесту містить два цілі числа і . Тут (0 < H \leq 200) — кількість рядків сканування у зображенні, а (0 < W \leq 50) — кількість шістнадцяткових символів у кожному рядку. Наступні рядків містять шістнадцяткові символи зображення згори донизу. Вхідні зображення відповідають таким вимогам:

  • Зображення містить лише ієрогліфи, зображені на рисунку .

  • Кожне зображення містить принаймні один ієрогліф.

  • Кожен чорний піксель є частиною ієрогліфа.

  • Кожен ієрогліф складається зі зв'язної області чорних пікселів, кожен з яких має принаймні один сусідній чорний піксель зверху, знизу, зліва чи справа.

  • Ієрогліфи не торкаються один одного, і жоден ієрогліф не знаходиться всередині іншого.

  • Якщо два чорні пікселі дотикаються по діагоналі, існує також чорний піксель, який дотикається до обох.

  • Ієрогліфи можуть бути спотвореними, але кожен із них топологічно еквівалентний одному із символів на рисунку (дві фігури є топологічно еквівалентними, якщо одну можна отримати з іншої розтягуванням без розриву).

Після останнього тестового випадку йде рядок, що містить два нулі.

Вихідні дані

Для кожного тесту виведіть його номер (case number), а далі рядок, що містить по одній літері для кожного розпізнаного ієрогліфа на зображенні, використовуючи такі коди:

Анкх: A Уджат: J Джет: D Скарабей: S Уас: W Ахет: K

У кожному вихідному рядку символи-коди слід розташовувати у алфавітному порядку. Дотримуйтесь формату прикладу у вихідних даних.

У прикладі тестових даних наведено зображення, показані на рисунках та . Через обмеження місця не всі приклади введення наведені тут.

Приклади

Приклад 1

Loading
Loading