Кодові імена#10890

Кодові імена

5 секунд
640 мегабайтів
Складна

Правила цієї гри можуть дещо відрізнятися від офіційних.

Карен і її друзі беруть участь у чемпіонаті з настільних ігор з високими ставками, граючи в популярну гру Codenames. Codenames — це гра з двома командами: червоною і синьою. Карен — член червоної команди.

Гра проходить на дошці розміром 5 \times 5, де кожній з клітинок (таємно) призначено один з чотирьох типів. На дошці є фіксована кількість клітинок кожного типу:

Справжні типи клітинок відомі лише одному гравцю з кожної команди (так званому "шпигуну"). Решта гравців спочатку бачать лише сітку 5 \times 5 з повністю закритими клітинками. Клітинки відкриваються в міру гри. Кожна закрита клітинка містить ім'я об'єкта (яке, як виявилося, не має відношення до цього завдання).

На щастя, Карен — шпигун у своїй команді, тому вона знає справжню конфігурацію дошки. Її завдання — допомогти своїм товаришам по команді виявити червоні клітинки, утримуючи їх подалі від усіх інших клітинок (особливо клітинки-вбивці). Вона може зробити це, оголосивши підказку, що складається з:

Після цього її товариші по команді намагатимуться вгадати якомога більше червоних клітинок, враховуючи підказку. Вони починають з першого припущення і відкривають одну з клітинок. Якщо виявлена клітинка червона, вони можуть продовжити процес вгадування; в іншому випадку їх хід зупиняється, і ходити починає інша команда. Команда виграє гру, якщо розкриваються всі клітинки відповідного кольору, або якщо інша команда відкрила клітинку-вбивцю.

Щоб проілюструвати це, розглянемо стан гри нижче (відповідний прикладу). На лівому зображенні показано, як Карен бачить дошку. На середньому малюнку показано, як її товариші по команді бачать дошку. Зверніть увагу, що деякі з клітинок закриті для товаришів по команді Карен, і тільки Карен знає їх справжні типи. Значення правого зображення буде пояснено пізніше в умові.

prb10890.gif

Первісно мета Карен полягала в тому, щоб давати підказки, що стосуються назв об'єктів у деяких червоних клітинках, щоб товариші по команді знали, що потрібно відкривати тільки ці клітинки. Однак незабаром вона зрозуміла, що гра йде не дуже добре, і що синя команда може обіграти їх на наступному ході. На щастя, вона і її друзі розробили секретну "схему екстреного шахрайства" спеціально для цих ситуацій.

Вони починають з присвоєння літери кожній з клітинок у порядку зростання рядків (як показано вище на правому малюнку). Потім, коли Карен вимовляє слово і число , її товариші по команді будуть робити наступне:

  1. Переглянуть кожну з літер w_i слова по порядку;

  2. Якщо w_i не присвоєна жодній клітинці або вказана клітинка w_i вже виявлена, то нічого не робити; в іншому випадку вгадати клітинку, відповідну w_i.

Товариші по команді повторюють цю процедуру доти, поки не відкриють всі правильні клітинки, або зроблять помилку (покажуть не червону клітинку), або вони вже зробили всі здогадок або всі літери вже виявлені.

У наведеному вище прикладі Карен може оголосити своїй команді "actor 2". Її команда спочатку вгадує клітинку (, ) (відповідає літері a), пропустить літеру c як вже відкриту клітинку (, ), потім вгадає клітинку (, ) і виграє гру (оскільки інші червоні клітинки вже виявлені).

Карен хоче використати цю схему, щоб виграти гру за один хід. Вона знає словник всіх допустимих слів, а також поточний стан гри. Знайдіть підказку, яку вона повинна оголосити своїй команді, щоб подарувати їм перемогу!

Є різних сценаріїв, які Вам потрібно вирішити. Словник однаковий для всіх сценаріїв, але конфігурації дошки можуть відрізнятися.

Вхідні дані

Перший рядок містить натуральне число (1 \le n \le 10^5) — кількість допустимих слів. Кожен з наступних рядків містить одне слово з словника. Слова складаються з не менше ніж однієї і не більше ніж літер.

Наступний рядок містить натуральне число (1 \le q \le 10^5) — кількість сценаріїв. Потім слідують рядків, кожен з яких описує дошку. Кожна дошка представлена таблицею 5 \times 5 літер з набору {r, b, n, x} (червоний / синій / нейтральний / вбивця). Якщо літера наведена у верхньому регістрі, то відповідна клітинка вже відкрита (в іншому випадку клітинка закрита). У таблиці є принаймні одна синя і одна червона закриті клітинки. Клітинка-вбивця завжди закрита. Іншими словами, стан дошки завжди вказує на те, що гра ще не завершена.

Вихідні дані

Для кожного з сценаріїв виведіть підказку, що складається з слова і числа (1 \le g \le 9), яка принесе команді Карен перемогу. Якщо в сценарії повідомити таку підказку неможливо, виведіть одне слово "IMPOSSIBLE" (без лапок) замість підказки. Якщо існує декілька рішень, виведіть будь-яке. Відповіді на різні сценарії слід виводити в окремих рядках.

Приклади

Приклад 1

Loading
Loading

Примітка

Зверніть увагу, що Карен не може оголосити, наприклад, cheat 3, оскільки тоді її команда розкриє клітинку в позиції (, ) і закінчить свій хід. Правильними рішеннями будуть zeta 2 або actor 4.