eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Латинские квадраты

Латинские квадраты

Латинский квадрат --- это таблица \textbf{N}×\textbf{N}, заполненная числами от \textbf{1} до \textbf{N} таким образом, чтобы в каждой строке и в каждом столбце встречалось каждое из \textbf{N} чисел. Пример латинского квадрата \textbf{3}×\textbf{3}: Дана прямоугольная матрица из чисел \textbf{W}×\textbf{H} (\textbf{W} ≠ \textbf{H}, \textbf{2} ≤ \textbf{W}, \textbf{H} ≤ \textbf{8}). По строкам и столбцам она заполнена числами от \textbf{1} до \textbf{max}(\textbf{W}, \textbf{H}). Требуется довести эту матрицу до латинского квадрата со стороной \textbf{max}(\textbf{W}, \textbf{H}) или сообщить, что это невозможно. Запрещается изменять содержимое заданного прямоугольника. \InputFile Первая строка во входных данных содержит числа \textbf{W} и \textbf{H}. В последующих \textbf{H} строках записано по \textbf{W} чисел через пробел. \OutputFile Если довести до латинского квадрата этот прямоугольник нельзя, то выведите "\textbf{Impossible}" (без кавычек), иначе в первой строке выведите длину стороны латинского квадрата, а в следующих строках выведите получившийся латинский квадрат. Числа в столбиках выводите через один пробел. Если решений несколько --- выведите любое.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 2
1 2 3
3 1 2
Выходные данные #1
3
1 2 3
3 1 2
2 3 1
Источник Китёнок 2011 г. Ковров