#include<bits/stdc++.h>
#define longint long long
using namespace std;
inline longint read(){
char ch=getchar();longint x=0;bool flag=0;
while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
if(ch=='-') flag=1,ch=getchar();
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
if(flag) return -x;return x;
}
longint n,q,x,y,z;
struct asd{
longint zh,wei;
}a[8001];
bool cmp(asd a,asd b){
if(a.zh==b.zh) return a.wei<b.wei;
return a.zh<b.zh;
}
int main(){
n=read();q=read();
for(int i=1;i<=n;i++) a[i].zh=read(),a[i].wei=i;
sort(a+1,a+n+1,cmp);
while(q--){
x=read();
if(x==1){
y=read();z=read();
for(longint i=1;i<=n;i++){
if(a[i].wei==y){
if(a[i].zh<z){
a[i].zh=z;
for(longint j=i;j<n;j++){
if(a[i].zh>a[i+1].zh) swap(a[i],a[i+1]);
else if(a[i].zh==a[i+1].zh&&a[i].wei>a[i+1].wei) swap(a[i],a[i+1]);
else break;
}
}else{
a[i].zh=z;
for(longint j=i;j>1;j--){
if(a[i].zh<a[i-1].zh) swap(a[i],a[i-1]);
else if(a[i].zh==a[i-1].zh&&a[i].wei<a[i-1].wei) swap(a[i],a[i-1]);
else break;
}
}
break;
}
}
}
if(x==2){
y=read();
for(longint i=1;i<=n;i++){
if(a[i].wei==y){
printf("%lld\n",i);
break;
}
}
}
}
}