#include<cstdio>
#include<iostream>
using namespace std;
int n,q,t,s,x,v,c;
int sn[200007];
struct A
{
int number;
int bh;
} a[200007];
inline void sf()
{
for(int i=1;i<=n;++i)
{
for(int j=i;j>=2;--j)
{
if(a[j].number<a[j-1].number)
{
t=a[j-1].number;
a[j-1].number=a[j].number;
a[j].number=t;
t=a[j].bh;
a[j].bh=a[j-1].bh;
a[j-1].bh=t;
t=sn[a[j].bh];
sn[a[j].bh]=sn[a[j-1].bh];
sn[a[j-1].bh]=t;
}
else if(a[j].number==a[j-1].number && a[j].bh<a[j-1].bh)
{
t=a[j-1].number;
a[j-1].number=a[j].number;
a[j].number=t;
t=a[j].bh;
a[j].bh=a[j-1].bh;
a[j-1].bh=t;
t=sn[a[j].bh];
sn[a[j].bh]=sn[a[j-1].bh];
sn[a[j-1].bh]=t;
}
}
}
return;
}
int main()
{
scanf("%d %d",&n,&q);
for(int i=1;i<=n;++i)
{
scanf("%d",&a[i].number);
a[i].bh=i;
sn[a[i].bh]=i;
}
sf();
for(int i=1;i<=q;++i)
{
scanf("%d",&s);
if(s==1)
{
scanf("%d %d",&x,&v);
a[sn[x]].number=v;
sf();
}
else
{
scanf("%d",&c);
printf("%d",sn[c]);
cout<<endl;
}
}
return 0;
}