Тетрiс
Limits: 2 sec., 256 MiB
Тарас обожнює грати в тетріс. Він грає в усі види та на усіх платформах що бачить. Цього разу йому попався вид, де можна оперувати лише чотирма типами тетроміно. Тетраміно — геометричні фігури, що складаються з чотирьох квадратів, з’єднаних сторонами.
Дозволені типи тетраміно
Тарасу потрібно замостити прямокутне поле в \(n\) рядків та \(m\) стовпців за допомогою лише даних типів тетраміно. Але просто замостити для Тараса недостатньо — він бажає зробити це використовуючи мінімальну кількість типів тетраміно. Тетраміно можна повертати і дзеркально відображати — такі фігури вважатимуться тим самим типом, що й вихідна.
Тарасу самотньо грати поодинці, тому він хоче запросити вас насолодитися грою разом. Допоможіть Тарасу замостити поле мінімальною кількістю типів тетраміно.
Input
У єдиному рядку задано два числа \(n\) та \(m\) — кількість рядків та стовпців відповідно.
Output
Якщо замостити неможливо — виведіть єдине число -1.
Інакше виведіть матрицю \(A\) з \(n\) рядків, в кожному по \(m\) чисел, всі елементи якої належать проміжку \(0 \leq A_{ij} \leq 10^9\), яка відображає шукане замощення. Однакові числа належать одній фігурі, різні числа — різним фігурам.
Якщо рiшень декiлька, то виведiть будь-яке.
Constraints
\(1 \leq n, m \leq 10^3\).
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 4 4 | 0 0 1 1 0 0 1 1 2 2 3 3 2 2 3 3 |
| Input (stdin) | Output (stdout) |
|---|---|
| 1 1 | -1 |
Submit a solution
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|