Hexodoku#6741

Hexodoku

4 секунди
256 мегабайтів
Легка

Судоку — це захоплююча гра, яка приносить задоволення багатьом людям. Існує легенда, що видатний програміст витратив лише хвилин на створення програми для розв'язання стандартного судоку. Це вражає, чи не так? Тепер він вирішив іншу задачу. Чи зможете ви повторити його успіх?

Розгляньте нестандартну шестикутну дошку Судоку:

Клітини на дошці пронумеровані від до .

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

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

Числа повинні бути різними

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

Нехай A_i — це число в клітині в розв'язанні , а B_i — число в клітині в розв'язанні . Розв'язання є лексикографічно меншим за розв'язання , якщо існує таке , що для кожного , де i < j: A_i = B_i і A_j < B_j.

Вхідні дані

Перша строка вхідних даних містить два цілі числа та .

  • 7 \le K \le 31

  • 1 \le N \le 100000

Друга строка містить ціле число: A_i (1 \le i \le 31) — це число, що стоїть у клітині .

  • 1 \le A_i \le K, або , якщо в цій клітині немає числа.

Вихідні дані

Перша строка вихідних даних повинна містити відповідь:

  • "Found" — якщо розв'язання знайдено.

  • "No way" — якщо немає -го розв'язання.

Якщо розв'язання знайдено, друга строка вихідних даних повинна містити -те розв'язання у тому ж форматі, що й у вхідних даних.

Це перший приклад вище:

Приклади

Приклад 1

Loading
Loading