#include<bits/stdc++.h>
using namespace std;
struct node{
int v,id;
} b[200005];
int a[200005],n,Q;
int pm[200005];
int c1,c2,c3,c4;
int cmp(node a,node b){
if(a.v==b.v) return a.id<b.id;
return a.v<b.v;
}
int main(){
scanf("%d%d",&n,&Q);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
b[i].v=a[i];
b[i].id=i;
}
sort(b+1,b+n+1,cmp);
for(int i=1;i<=n;i++){
pm[b[i].id]=i;
}
for(int j=0;j<Q;j++){
scanf("%d",&c1);
if(c1==1){
scanf("%d%d",&c2,&c3);
int sum=a[c2];
b[pm[c2]].v=c3;
if(sum==c3) continue;
for(int i=n;i>=2;i--){
if(b[i].v>=b[i-1].v||b[i].v==b[i-1].v&&b[i].id>b[i-1].id)
swap(b[i],b[i-1]);
}
for(int i=2;i<=n;i++){
if(b[i].v<=b[i-1].v||b[i].v==b[i-1].v&&b[i].id<b[i-1].id)
swap(b[i],b[i-1]);
}
for(int i=1;i<=n;i++)
pm[b[i].id]=i;
}
else{
scanf("%d",&c4);
printf("%d\n",pm[c4]);
}
}
return 0;
}