#include<bits/stdc++.h>
using namespace std;
struct NUM{
int val,pos;
}num[8010];
int n,cha[8010];
void insertSort()/
{
for(int i=1;i<=n;i++)
{
for(int j=i;j>=2;j--)
{
if(num[j-1].val>num[j].val)
{
swap(num[j-1],num[j]);
}
if(num[j-1].val==num[j].val&&num[j-1].pos>num[j].pos)
{
swap(num[j-1],num[j]);
}
}
}
}
void gai(int x,int v)/
{
int i;
for(i=1;i<=n;i++)
{
if(num[i].pos==x)
{
num[i].val=v;
break;
}
}
while(num[i-1].val>num[i].val || (num[i-1].val==num[i].val&&num[i-1].pos>num[i].pos))
{
swap(num[i-1],num[i]);
i--;
if(i<=1)
break;
}
while(num[i+1].val<num[i].val||(num[i+1].val==num[i].val&&num[i+1].pos<num[i].pos))
{
swap(num[i+1],num[i]);
i++;
if(i>=n)
break;
}
for(int i=1;i<=n;i++)
{
cha[num[i].pos]=i;
}
}
//void show()
//{
// cout<<endl;
// cout<<"num数组:值 -- 原位置"<<endl;
// for(int i=1;i<=n;i++)
// {
// cout<<num[i].val<<" "<<num[i].pos<<endl;
// }
// cout<<endl;
// cout<<"cha数组:原位置 -- 现在位置 "<<endl;
// for(int i=1;i<=n;i++)
// {
// cout<<i<<" "<<cha[i]<<endl;
// }
// cout<<endl;
//}
int main(){
int Q;
cin>>n>>Q;
for(int i=1;i<=n;i++)
{
cin>>num[i].val;
num[i].pos=i;
}
insertSort();
for(int i=1;i<=n;i++)
{
cha[num[i].pos]=i;/
}
// show();
while(Q--)
{
int q,x,v;
cin>>q;
if(q==1)
{
cin>>x>>v;
gai(x,v);
// show();
}
else
{
cin>>x;
cout<<cha[x]<<endl;
}
}
return 0;
}