Задачі
Динамічний масив
Динамічний масив
Потрібно реалізувати структуру даних, яка являє собою динамічний масив, який підтримує наступні операції:
\begin{enumerate}
\item Присвоїти числу, яке стоїть на позиції \textbf{u}, значення \textbf{p}.
\item Вставити число \textbf{p} після позиції \textbf{u} (але перед позицією \textbf{u+1}, якщо вона існує).
\item Повідомити, скільки чисел, які не перевищують \textbf{p}, стоїть на позиціях з \textbf{u} по \textbf{v} включно.
\end{enumerate}
Елементи масиву нумеруються з одиниці.
\InputFile
У першому рядку знаходяться два натуральних числа \textbf{n} та \textbf{m} - початкова кількість елементів у масиві та кількість операцій (\textbf{1} ≤ \textbf{n} ≤ \textbf{200000}, \textbf{1} ≤ \textbf{m} ≤ \textbf{200000}). У другому рядку знаходиться \textbf{n} цілих чисел \textbf{a_1}, \textbf{a_2}, ..., \textbf{a_n} - елементи початкового масиву (\textbf{0} ≤ \textbf{a_i} ≤ \textbf{10^6}). Наступні \textbf{m} рядків містять описи операцій у форматі
\textbf{1 u p} (\textbf{u} ≥ \textbf{1}, \textbf{u} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6}),
\textbf{2 u p} (\textbf{u} ≥ \textbf{0}, \textbf{u} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6})
або
\textbf{3 u v p} (\textbf{1} ≤ \textbf{u} ≤ \textbf{v}, \textbf{v} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6}).
\OutputFile
У вихідному файлі повинні знаходитись відповіді на запити - по одній у рядку.
Вхідні дані #1
5 5 1 3 5 4 2 3 2 4 4 1 3 3 3 2 4 4 2 2 10 3 2 4 4
Вихідні дані #1
2 3 2