#include<bits/stdc++.h>
using namespace std;
struct aa{
int val;
int tmp;
};
int main(){
int n,Q;
scanf("%d%d",&n,&Q);
aa a[n+1],b[n+1];
for(int i=1;i<=n;i++){
scanf("%d",&a[i].val);
a[i].tmp=i;
b[i]=a[i];
}
bool flag=false;
for(int i=1;i<=Q;i++){
int f;
scanf("%d",&f);
if(!flag){
for(int i=1;i<=n;i++){
a[i]=b[i];
}
}
if(f==1){
int x,u;
scanf("%d%d",&x,&u);
b[x].val=u;
flag=false;
}
if(f==2){
int x;
scanf("%d",&x);
if(flag==false){
for (int i=1;i<=n;i++){
for (int j=i;j>=2;j--){
if (a[j].val<a[j-1].val){
swap(a[j],a[j-1]);
}
}
}
flag=true;
for(int i=1;i<=n;i++){
if(a[i].tmp==x){
printf("%d\n",i);
break;
}
}
continue;
}
for(int i=1;i<=n;i++){
if(a[i].tmp==x){
printf("%d\n",i);
break;
}
}
}
}
return 0;
}