Заполнить сетку

Дана сетка размером , которую нужно полностью замостить L-образными тромино, кроме одной ячейки (r, c). Эта ячейка должна оставаться пустой.

L-образное тромино (L-shaped tromino) получается путём удаления одной ячейки из квадрата .

Если замостить сетку невозможно, программа должна вывести Impossible.

1200px-Trominoes.svg.png
L-shaped tromino

Ввод

Первая строка ввода содержит одно целое число n (1 ≤ n ≤ 9).

Вторая строка содержит координаты пустой ячейки (r, c) (1 ≤ r, c ≤ ), где r — номер строки пустой ячейки, а c — номер столбца.

Вывод

Программа должна вывести строк, каждая из которых содержит чисел, разделённых пробелом. Каждое число соответствует одному L-образному тромино. Удалённая ячейка должна быть обозначена как 0. Индексировать тромино следует от 1 до . Если существует несколько способов замостить сетку, можно вывести любой из них.

Примеры

Input

Output

2 1 1

0 1 3 3 1 1 4 3 2 4 4 5 2 2 5 5

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 10 MB

To check your solution you need to sign in
Sign in to continue