Задачи
Постройте массив
Постройте массив
Али с нуля любит создавать новый массив. Сегодня он хочет построить массив $a_1, a_2, ..., a_n$ из $n$ элементов. Изначально он имеет массив $b_1, b_2, ..., b_n$, содержащий $n$ нулей, и может применять к этому массиву только следующие операции:
\begin{itemize}
\item $MAX(l, r, x)$: Это означает, что $b_i = max(b_i, x)$ для всех $i$, удовлетворяющих условию $l \le i \le r$. Разумеется, в этой операции должно выполняться условие $1 \le l \le r \le n$.
\end{itemize}
Теперь Али думает над вопросом, за какое минимальное количество операций он сможет
получить массив $a$. Помогите Али найти минимальное количество операций и любую
последовательность таких операций.
\InputFile
Первая строка содержит одно целое число $n~(1 \le n \le 10^5)$. Следующая строка содержит $n$ целых чисел $a_1, a_2, ..., a_n~(0 \le a_i \le 10^9)$.
\OutputFile
Выведите минимальное количество операций, необходимое для получения массива 𝑎 в первой строке. Обозначим это количество через $m$. Выведите любую такую последовательность операций в следующих 𝑚 строках в формате $l~r~x$.
\Examples
\textbf{Первый тест.} Посмотрите, как меняется массив по мере применения операций:
\begin{lstlisting}[language=C++]
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
\end{lstlisting}
Невозможно получить данный массив менее чем за $6$ операций. Могут быть и другие правильные варианты последовательности операций.
\textbf{Второй тест.}
\begin{lstlisting}[language=C++]
b[] = 0 0 0 0 0 0 0
b[] = 0 0 1 1 1 1 0
b[] = 0 0 1 3 3 1 0
\end{lstlisting}
Входные данные #1
8 1 7 1 7 7 3 2 3
Выходные данные #1
6 1 8 1 2 2 7 4 8 2 4 6 3 4 5 7 8 8 3
Входные данные #2
7 0 0 1 3 3 1 0
Выходные данные #2
2 3 6 1 4 5 3