Побудуйте масив
Алі з нуля любить створювати новий масив. Сьогодні він хоче побудувати масив з елементів. Спочатку у нього є масив , який містить нулів, і він може застосовувати до цього масиву лише наступні операції:
: Це означає, що для всіх , що задовольняють умові . Звісно, у цій операції повинна виконуватися умова .
Тепер Алі думає над тим, за яке мінімальне число операцій він зможе отримати масив . Допоможіть Алі знайти мінімальну кількість операцій і будь-яку послідовність таких операцій.
Вхідні дані
Перший рядок містить одне ціле число . Наступний рядок містить цілих чисел .
Вихідні дані
Виведіть мінімальну кількість операцій, необхідну для отримання масиву 𝑎 у першому рядку. Позначимо це число через . Виведіть будь-яку таку послідовність операцій у наступних 𝑚 рядках у форматі .
Приклади
Приклад 1. Подивіться, як змінюється масив при застосуванні операцій:
b[] = 0 0 0 0 0 0 0 0 b[] = 1 1 1 0 0 0 0 0 b[] = 1 7 1 0 0 0 0 0 b[] = 1 7 1 7 7 0 0 0 b[] = 1 7 1 7 7 2 2 2 b[] = 1 7 1 7 7 3 2 2 b[] = 1 7 1 7 7 3 2 3
Неможливо отримати заданий масив менше, ніж за операцій. Можуть бути інші правильні варіанти послідовності операцій.
Приклад 2.
b[] = 0 0 0 0 0 0 0 b[] = 0 0 1 1 1 1 0 b[] = 0 0 1 3 3 1 0