#include<iostream>
using namespace std;
int n,m,a[1000005],b[1000005],ans=0,out[1000000];
int read()
{
int a = 0,x = 1;char ch = getchar();
while(ch > '9' || ch < '0') {ch = getchar();}
while(ch >= '0' && ch <= '9') {a = a*10 + ch-'0';ch = getchar();}
return a*x;
}
void print(int x){
int p=0,pnt=x;
if(pnt==0){
putchar('0');
return;
}
else while(pnt){
out[p++]=pnt%10;
pnt/=10;
}
for(int j=p-1;j>=0;j--) putchar('0'+out[j]);
putchar('\n');
}
void *calloc(int n, int size);
int main(){
n=read();
m=read();
for(int i=1,k=0;i<=n;i++){
a[i]=read();
if(a[i]!=k) ans++,k=a[i];
b[a[i]]++;
}
for(int i=1,x,y;i<=m;i++){
x=read();
if(x==1){
x=read();
y=read();
for(int j=1;j<=n;j++){
if(a[j]==x){
if(a[j-1]==x&&a[j-1]!=y) ans++;
if(a[j-1]==y&&a[j-1]!=x) ans--;
if(a[j+1]==x&&a[j+1]!=y) ans++;
if(a[j+1]==y&&a[j+1]!=x) ans--;
b[a[j]]--;
a[j]=y;
b[a[j]]++;
}
if(b[x]==0) break;
}
}
else{
print(ans);
}
}
}