Вправа для Леонардо
Limits: 2 sec., 512 MiB
У Сплінтера є стіл, прямокутної форми, який складається з пофарбованих клітинок, де кожна клітинка має колір — чорний або білий. Спочатку всі клітинки чорні.
Сплінтер придумав вправу для Леонардо: йому потрібно створити візерунок на столі, заданий як певна бінарна матриця розміром \(n \times m\).
За один помах катаною Леонардо може перефарбувати будь-який прямокутник одиничної ширини або одиничної висоти у вибраний колір.
Більш формально, він може:
вибрати прямокутник у матриці так, щоб його ширина, або його висота дорівнювала \(1\);
перефарбувати всі клітинки цього прямокутника в чорний або білий колір.
Щоб Леонардо не розслаблявся, йому дозволено зробити не більше ніж 3333 помахи катаною. Допоможіть йому знайти будь-яку послідовність змахів, яка створить потрібний візерунок і задовольняє обмеження Сплінтера.
Input
В першому рядку задано два цілих числа \(n\), \(m\).
В наступних \(n\) рядках задано бінарні рядки довжиною \(m\).
Output
В першому рядку виведіть кількість операцій — \(cnt\).
У наступних \(cnt\) рядках виведіть операції в форматі \(x_1\; x_2\; y_1\; y_2\; col\).
Де \(1 \le x_1 \le x_2 \le n\) відповідають за рядки прямокутника починаючи індексацію зверху. А \(1 \le y_1 \le y_2 \le m\) відповідають за стовпці прямокутника починаючи індексацію зліва.
Зауважте, що має виконуватись \(x_1 = x_2\) або \(y_1 = y_2\), а \(col\) рівний 0 або 1. Значення 0 відповідає за чорний колір, а 1 за білий.
Constraints
\(1 \le n, m \le 99\),
\(n\) ділиться на 3.
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 3 7 0111001 0001001 0001111 | 4 1 1 2 4 1 1 3 4 4 1 3 3 4 6 1 1 3 7 7 1 |
Notes
Зауважте, що за один змах можна перефарбувати прямокутник розміром 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 |
|---|