Кубики з літерами
Ця задача базується на головоломці Рендалла Л. Віпкі.
У грі з Кубиками Літер є набір кубиків, на кожній грані яких є літера алфавіту, причому жодна літера не повторюється в усьому наборі. Максимальна кількість кубиків — 4, що дозволяє використовувати до 24 з 26 літер алфавіту.
Слова утворюються шляхом перестановки та повертання кубиків так, щоб верхні літери всіх кубиків разом утворювали слово. Нижче наведено 13 слів, створених за допомогою певного набору кубиків.
CLIP
CLOG
CONE
DISH
FAZE
FURL
MARE
MOCK
QUIP
STEW
TONY
VICE
WARD
У наведених вище словах використано лише 23 різні літери, тому ми повідомимо вам додаткову інформацію, що на одному з кубиків є літера B. Чи можете ви тепер визначити літери на кожному кубику? Для наведеного набору слів дійсно існує унікальний набір кубиків. Ми наведемо це рішення в канонічній формі як
ABCHTU DEKLQY FGIMNW OPRSVZ
Зверніть увагу, що літери на кожному окремому кубику вказані як рядок символів в алфавітному порядку, а чотири 6-літерні рядки, що представляють чотири кубики, також наведені в алфавітному порядку.
Простішим прикладом є два кубики, що утворюють наступні 11 дволітерні рядки (хоча головоломки цікавіші, коли рядки є справжніми словами, це не обов'язково):
PI
MU
HO
WE
WO
BE
MA
HI
RE
AB
PY
Єдине рішення для двох кубиків, що утворюють ці рядки, це
AEIOUY BHMPRW
Ті ж два кубики можна було б визначити без останньої пари PY, якщо вам було б сказано, що на одному кубику є літера Y. Ваше завдання — зробити подібні висновки.
Вхідні дані
Вхід міститиме від 1 до 20 наборів даних. Перша строка кожного набору даних міститиме додатне ціле число n (6 ≤ n ≤ 30) та символ c, описані нижче. Наступні n рядків міститимуть рядок з великих літер. Кожен рядок матиме однакову довжину, назвемо її k, з 2 ≤ k ≤ 4. Після останнього набору даних йде рядок, що містить лише 0.
Повертаючись до питання спеціального символу c у першому рядку введення для кожного набору даних, існує два випадки для розгляду. Нагадаємо, що неявний набір з k кубиків повинен використовувати 6*k різних літер на своїх гранях. Якщо всі 6*k цих літер з'являються в наборі рядків, то символ c у першому рядку введення є дефісом, '-'. В іншому випадку рядки були обрані так, що лише одна літера на кубиках не з'являється. У цьому випадку символ c у першому рядку введення буде тією невідображеною літерою. (Наприклад, B у нашій початковій головоломці.)
Вихідні дані
Для кожного набору даних виведіть один рядок, що містить 6-літерний рядок для кожного кубика, показуючи літери на гранях цього кубика. Кожен з цих рядків повинен мати свої літери в алфавітному порядку, а набір рядків повинен бути наведений в алфавітному порядку один відносно одного, з одним пробілом між кожною парою. Ми вибрали набори даних так, що кожен має унікальне рішення.