#include<bits/stdc++.h>
using namespace std;
const int N=200000+5;
int n,q;
struct data{
int p,v;
}a[N];
int pos[N];
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i].v;
a[i].p=i;
}
for (int i = 1; i <= n; i++)
for (int j = i; j >= 2; j--)
if (a[j].v < a[j-1].v) {
swap(a[j],a[j-1]);
}
for(int i=1;i<=n;i++)
{
pos[i]=a[i].p;
}
while(q--)
{
int op,xx;
cin>>op>>xx;
if(op==2)cout<<pos[xx]<<endl;
else{
int vv;
cin>>vv;
int k=1;
while(a[k].p!=xx)k++;
a[k].v=vv;
while(k>1&&a[k].v<a[k-1].v||a[k].v==a[k-1].v&&a[k].p<a[k-1].p)
{
swap(pos[a[k].p],pos[a[k-1].p]);
swap(a[k],a[k-1]);
k--;
}
while(k<n&&a[k].v>a[k+1].v||a[k].v==a[k+1].v&&a[k].p<a[k+1].p)
{
swap(pos[a[k].p],pos[a[k+1].p]);
swap(a[k],a[k+1]);
k++;
}
}
}
return 0;
}