eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Перестановки strike back

Перестановки strike back

Вася виписав на дошці у якомусь порядку усі числа від \textbf{1} до \textbf{N}, кожне число рівно по одному разу. Іноді він витирає якесь число і записує на його місце інше. Кількість чисел, записаних Васею, виявилась досить великою, тому Вася не може окинути поглядом усі числа. Проте йому потрібно усе-таки уявляти цю послідовність, тому він написав програму, яка у довільний момент відповідає на питання --- скільки серед чисел, які стоять на позиціях з \textbf{x} по \textbf{y}, по величині знаходяться у інтервалі від \textbf{k} до \textbf{l}. Зробіть те ж саме. \InputFile У першому рядку знаходиться два натуральних числа --- \textbf{1} ≤ \textbf{N} ≤ \textbf{100000} --- кількість чисел, які виписав Вася і \textbf{1} ≤ \textbf{M} ≤ \textbf{100000} --- сумарна кількість питань і змін зроблених Васею. У другому рядку задано \textbf{N} чисел --- послідовність чисел, виписаних Васею. Далі у \textbf{M} рядках знаходяться описи питань. Кожен запит на зміну числа у деякій позиції починається зі слова \textbf{SET} і має вигляд \textbf{SET a b} (\textbf{1} ≤ \textbf{a} ≤ \textbf{N}, \textbf{1} ≤ \textbf{b} ≤ \textbf{N}). Це означає, що Вася змінив число, записане у позиції \textbf{a} на число \textbf{b}. Кожне Васине запитання починається зі слова \textbf{GET} і має вигляд \textbf{GET x y k l} (\textbf{1} ≤ \textbf{x} ≤ \textbf{y} ≤ \textbf{N}, \textbf{1} ≤ \textbf{k} ≤ \textbf{l} ≤ \textbf{N}). \OutputFile Для кожного Васиного запитання виведіть єдине число --- відповідь на Васине запитання.
Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
4 2
1 2 3 4 
GET 1 2 2 3
GET 1 3 1 3
Вихідні дані #1
1
3