C1542 [Ynoi]2016-C

内存限制:256 MB 时间限制:2000 ms

题目描述

您正在欣赏 galgame 的 HS,然后游戏崩溃了,于是您只能做数据结构题了:

维护一个长为 $n$ 的序列 $a[i]$,有 $m$ 次操作。

  1. 将区间 $[l,r]$ 的值修改为 $x$。

  2. 询问区间 $[l,r]$ 出现了多少种不同的数。

也就是说同一个数出现多次只算一个。

输入格式

第一行两个数$n,m$。

第二行 $n$ 个数表示 $a[i]$​。

后面 $m$ 行每行为1 l r x或者2 l r,分别表示修改和询问。

输出

对于每个询问,输出一个数表示答案。

样例

样例输入 1

5 5 1 2 3 4 5 2 1 5 1 2 3 4 2 1 5 2 3 3 2 2 4

样例输出 1

5 3 1 1

提示

$n , m \le 100000 , 1 \le a[i] \le 1000000000$