Алі з нуля любить створювати новий масив. Сьогодні він хоче побудувати масив a_1, a_2, ..., a_n з елементів. Спочатку у нього є масив b_1, b_2, ..., b_n, який містить нулів, і він може застосовувати до цього масиву лише наступні операції:
MAX(l, r, x): Це означає, що b_i = max(b_i, x) для всіх , що задовольняють умові l \le i \le r. Звісно, у цій операції повинна виконуватися умова 1 \le l \le r \le n.
Тепер Алі думає над тим, за яке мінімальне число операцій він зможе отримати масив . Допоможіть Алі знайти мінімальну кількість операцій і будь-яку послідовність таких операцій.
Перший рядок містить одне ціле число n~(1 \le n \le 10^5). Наступний рядок містить цілих чисел a_1, a_2, ..., a_n~(0 \le a_i \le 10^9).
Виведіть мінімальну кількість операцій, необхідну для отримання масиву у першому рядку. Позначимо це число через . Виведіть будь-яку таку послідовність операцій у наступних рядках у форматі .
Приклад 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Приклад 1
Приклад 2