#12,#13,#18,#19,#20错误答案,本人看不出来,求助
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct play
{
int a;
int b;
};
play c[1000001];
int n,m,d[1000001],q,x,y;
bool cmp(play x,play y)
{
return x.a<y.a||x.a==y.a&&x.b<y.b;
}
int main()
{
// freopen("sort.in","r",stdin);
// freopen("sort.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&c[i].a),c[i].b=i;
sort(c+1,c+n+1,cmp);
for(int i=1;i<=n;i++)
d[c[i].b]=i;
for(int i=1;i<=m;i++)
{
scanf("%d",&q);
if(q==1)
{
scanf("%d%d",&x,&y);
c[d[x]].a=y;
for(int i=2;i<=n;i++)
if(cmp(c[i],c[i-1]))
swap(c[i],c[i-1]);
for(int i=n;i>=2;i--)
if(cmp(c[i],c[i-1]))
swap(c[i],c[i-1]);
for(int i=1;i<=n;i++)
d[c[i].b]=i;
}
if(q==2)
{
scanf("%d",&x);
printf("%d\n",d[x]);
}
}
// fclose(stdin);
// fclose(stdout);
return 0;
}