Латинські квадрати#2105

Латинські квадрати

1 секунда
64 мегабайти
Середня

Латинський квадрат — це таблиця розміром N \times N, заповнена числами від до так, що кожне число зустрічається рівно один раз у кожному рядку та кожному стовпці. Ось приклад латинського квадрата розміром 3 \times 3:

Вам задано прямокутну матрицю розміром W \times H (W \ne H, 2 \leq W, H \leq 8). Матриця заповнена, по рядках і стовпцях, числами від до \max(W, H). Ваше завдання — доповнити цей прямокутник до латинського квадрата розміром \max(W, H), або визначити, що це неможливо. Вміст заданого прямокутника змінювати не можна.

Вхідні дані

У першому рядку містяться цілі числа та .

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

Вихідні дані

Якщо неможливо доповнити прямокутник до латинського квадрата, виведіть Impossible (без лапок). Інакше у першому рядку виведіть довжину сторони латинського квадрата; у наступних рядках — отриманий латинський квадрат, числа у кожному рядку розділяйте одним пробілом. Якщо існує декілька розв'язків, виведіть будь-який з них.

Приклади

Приклад 1

Loading
Loading