#include<bits/stdc++.h>
using namespace std;
struct node{
int id,val;
}a[200001],b[200001];
int q;
int yu[200001];
bool cmp(const node &x,const node &y){
if(x.val==y.val){
return x.id<y.id;
}
return x.val<y.val;
}
int main(){
int n;
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].val);
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
yu[a[i].id]=i;
}
while(q--){
int opt;
scanf("%d",&opt);
if(opt==1){
int x,v;
scanf("%d%d",&x,&v);
for(int i=1;i<=n;i++){
if(a[i].id==x){
a[i].val=v;
break;
}
}
for(int i=2;i<=n;i++){
if(a[i].val<a[i-1].val||(a[i].val==a[i-1].val&&a[i].id<a[i-1].id)){
swap(a[i].val,a[i-1].val);
swap(a[i].id,a[i-1].id);
}
}
for(int i=1;i<=n;i++){
yu[a[i].id]=i;
}
}
else{
int x;
scanf("%d",&x);
printf("%d\n",yu[x]);
}
}
}