666
#include<iostream>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int n,x;
//数组中所有数都是非负整数
//归纳总结:稳定排序与不稳定排序
ll q,v;
struct neww{
ll num;
ll data;
}past[8010],a[8010];
int ffind(ll x)
{
for(ll i=1;i<=n;i++)
if(past[x].num==a[i].num)
return i;
}
bool cmp(neww x,neww y)
{
return x.data<y.data;
}
void csort()
{
for(ll i=1;i<=n;i++)
for(ll j=i;j>=2;j--)
if(a[j].data<a[j-1].data)
swap(a[j],a[j-1]);
}
void csort2()
{
for(ll i=2;i<n;i++)
{
ll l=1,h=i-1;
neww t=a[i];
while(l<=h)
{
ll mid=(l+h)/2;
if(t.data<a[mid].data) h=mid-1;
if(t.data>=a[mid].data) h=mid+1;
}
ll j;
for(j=i-1;j>h;j--)
a[j+1]=a[j];
a[j+1]=t;
}
}
int main()
{
cin>>n>>q;
for(ll i=1;i<=n;i++)
{
cin>>past[i].data;
past[i].num=i;
a[i]=past[i];
}
int temp;
for(ll i=1;i<=q;i++)
{
cin>>temp;
if(temp==1)
{
cin>>x>>v;
a[x].data=v;
past[x].data=v;//对未来有影响
}
if(temp==2)
{
cin>>x;
stable_sort(a+1,a+n+1,cmp);
cout<<ffind(x)<<endl;
for(ll i=1;i<=n;i++)
a[i]=past[i];//对未来无影响
}
}
return 0;
}