Латинские квадраты
Латинский квадрат — это таблица N×N, заполненная числами от 1 до N таким образом, чтобы в каждой строке и в каждом столбце встречалось каждое из N чисел. Пример латинского квадрата 3×3:
Дана прямоугольная матрица из чисел W×H (W ≠ H, 2 ≤ W, H ≤ 8). По строкам и столбцам она заполнена числами от 1 до max(W, H). Требуется довести эту матрицу до латинского квадрата со стороной max(W, H) или сообщить, что это невозможно. Запрещается изменять содержимое заданного прямоугольника.
Входные данные
Первая строка во входных данных содержит числа W и H. В последующих H строках записано по W чисел через пробел.
Выходные данные
Если довести до латинского квадрата этот прямоугольник нельзя, то выведите "Impossible" (без кавычек), иначе в первой строке выведите длину стороны латинского квадрата, а в следующих строках выведите получившийся латинский квадрат. Числа в столбиках выводите через один пробел. Если решений несколько — выведите любое.