5312 - 第二十四章 双指针和莫队:莫队修改

n(1 ≤ n ≤ 150000)个数(1 ≤ ai ≤ 10^6),q(1 ≤ q ≤ 150000)个询问和K(1 ≤ k ≤ 150000)个修改,每个询问有l,r两个数,问这个区间内有多少个不同的数。 比如: Q 2 10 表示在数列第二个数字和第10个数字间有几个不同的数

R 3 5 表示将数列第三个改为数字5 注意:q操作次数+K操作次数<=15万

输入

1 行两个整数 NM,分别代表初始数列的数量以及操作的个数。

2N 个整数,分别数列中的数字

3 行到第 2+M 行,每行分别代表做的一件事情,格式见题干部分。

输出

对于每一个 Query 的询问,你需要在对应的行中给出一个数字,代表第 L 到第 R 中共有几种不同的数字。

样例

输入

6 5
1 2 3 4 5 5
Q 1 4
Q 2 6
R 1 2
Q 1 4
Q 2 6

输出

4
4
3
4

提示

对于30%的数据,n,m \leq 10000

对于60%的数据,n,m \leq 50000

对于所有数据,n,m \leq 133333

所有的输入数据中出现的所有整数均大于等于 1 且不超过 10^6

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题