#ds801. 梦幻布丁

梦幻布丁

梦幻布丁

题目来源

HNOI2009

题目描述

nn个布丁摆成一行,进行mm次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。

例如颜色分别为1,2,2,11,2,2,1的四个布丁一共有33段颜色。

输入格式

第一行两个整数n,m(1≤n,m≤105)n,m (1\leq n,m \leq 10^5)表示布丁的个数和操作次数。

第二行nn个数a1,a2,…,an(1≤ai≤106)a_1, a_2, \dots, a_n(1\leq a_i\leq 10^6)表示第ii个布丁的颜色。

接下来mm行,每行描述一次操作。每行首先有一个整数opop表示操作类型:

  • 若op=1op = 1,则后有两个整数x,yx, y,表示将颜色xx的布丁全部变成颜色yy。保证1≤x,y≤1061\leq x, y\leq 10^6,xx可能等于yy。
  • 若op=2op = 2,则表示一次询问。

输出格式

针对第二类操作即询问,依次输出当前有多少段颜色。

样例输入

4 3
1 2 2 1
2
1 2 1
2

样例输出

3
1