Латинський квадрат — це таблиця 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" (без лапок), інакше у першому рядку виведіть довжину сторони латинського квадрату, а у наступних рядках виведіть отриманий латинський квадрат. Числа у стовбцях виводьте через один пропуск. Якщо розв'язків декілька — виведіть довільний.