#include<bits/stdc++.h>
using namespace std;
inline int read(){
int ret=0,f=1;
char c=getchar();
for(;c<'0'||c>'9';c=getchar()) if(c=='-') f=-f;
for(;c>='0'&&c<='9';c=getchar()) ret=ret*10+c-'0';
return ret*f;
}
int n,Q;
const int maxn=8000+55;
int t[maxn];
struct number{
int pre,id;
}a[maxn];
bool cmp(number &a,number &b){
if(a.pre!=b.pre) return a.pre<b.pre;
return a.id<b.id;
}
signed main(void){
n=read();Q=read();
for(int i=1;i<=n;i++){
a[i].pre=read();
a[i].id=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
t[a[i].id]=i;
}
while(Q--){
int opr=read();
if(opr==1){
int x,y;
x=read();y=read();
a[t[x]].pre=y;
for(int i=n;i>=2;i--){
if(cmp(a[i],a[i-1])){
number tmp=a[i];
a[i]=a[i-1];
a[i-1]=tmp;
}
}
for(int i=2;i<=n;i++){
if(cmp(a[i],a[i-1])){
number tmp=a[i];
a[i]=a[i-1];
a[i-1]=tmp;
}
}
for(int i=1;i<=n;i++){
t[a[i].id]=i;
}
} else {
int k=read();
scanf("%d\n",t[k]);
}
}
return 0;
}