Задача №112768. Площадь Пажитнова

В прошлом году всемирно известной игре Тетрис исполнилось 30 лет. В Берляндии очень любят Тетрис, и поэтому решили назвать одну из городских площадей в столице в честь изобретателя игры, Алексея Леонидовича Пажитнова. Дизайн площади, разумеется, должен напоминать всем о Тетрисе. Поэтому она будет замощена плитками в виде фигурок игры.

Как известно, фигурки Тетриса состоят из четырех «клеток». Берляндский завод тротуарной плитки может выпускать плитку в виде любых фигурок Тетриса. Размер каждой «клетки» такой плитки составляет \(1 \times 1\) метр. Все возможные фигурки Тетриса представлены на рисунке ниже.

Площадь Пажитнова имеет вид прямоугольника длиной \(N\) и шириной \(M\) метров. Для упрощения замощения она вся расчерчена на «клетки» размером \(1 \times 1\) метр, то есть представляет собой сетку. При замощении «клетки» плитки должны совпадать с «клетками» площади. Плитки можно использовать только целиком, они не должны перекрываться или выступать за пределы площади, но их можно поворачивать на углы, кратные \(90◦\) . Разумеется, плитки должны покрывать площадь полностью. Размерами промежутков между плитками, покрывающими соседние «клетки», можно пренебречь.

Например, площадь длиной 3 и шириной 4 метра можно покрыть тремя плитками, как показано на рисунке ниже.

Напишите программу, которая поможет берляндцам найти подходящее покрытие.

Входные данные

В первой и единственной строке записаны два натуральных числа \(N\) и \(M\) (\(1 \le N, M \le 100\)), разделенные пробелом — длина и ширина площади соответственно.

Выходные данные

В первой строке выведите число \(K\) — минимальное количество плиток, нужное для того, чтобы замостить площадь. Если площадь замостить невозможно, то выведите одно число -1.

Если замощение существует, то выведите его, начиная со второй строки. А именно, считайте, что плитки, используемые в замощении, занумерованы натуральными числами от 1 до \(K\). Выведите \(N\) строк по \(M\) чисел, разделенных пробелами, в каждой. Эти числа должны соответствовать номерам плиток, покрывающим соответствующие «клетки» площади.

Если существует несколько замощений с минимальным количеством плиток, то выведите любое из них.

Примечание

Первый пример соответствует картинке из условия.

Примеры
Входные данные
3 4
Выходные данные
3
1 1 1 1 
2 2 2 2 
3 3 3 3 
Входные данные
3 3
Выходные данные
-1
Сдать: для сдачи задач необходимо войти в систему