#include<bits/stdc++.h>
using namespace std;
struct arr{
int val;
int pos;
};
bool cmp(arr x,arr y){
return x.val<y.val;
}
//1 6 8 5 7
//1 4 5 2 3
//1 5 6 7 8
//1 4 2 5 3
arr a[8010],b[8010];
int main(){
int m,n;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].val;
b[i].pos=i;
b[i].val=a[i].val;
}
sort(b+1,b+n+1,cmp);
for(int i=1;i<=n;i++){
a[b[i].pos].pos=i;
}
for(int i=1;i<=m;i++){
int f;
cin>>f;
if(f==2){
int x;
cin>>x;
cout<<a[x].pos<<endl;
}else{
int x,v;
cin>>x>>v;
a[x].val=v;
int xx=a[x].pos;
b[xx].val=v;
while(xx<n&&(b[xx].val>b[xx+1].val
||b[xx].val==b[xx+1].val&&b[xx].pos>b[xx+1].pos)){
swap(a[b[xx].pos].pos,a[b[xx+1].pos].pos);
swap(b[xx],b[xx+1]);
xx++;
}
while(xx>1&&(b[xx].val<b[xx-1].val
||b[xx].val==b[xx-1].val&&
b[xx].pos<b[xx-1].pos)){
swap(a[b[xx].pos].pos,a[b[xx-1].pos].pos);
swap(b[xx],b[xx-1]);
xx--;
}
// for(int i=1;i<=n;i++){
// cout<<a[i].val<<' ';
// }
// cout<<endl;
// for(int i=1;i<=n;i++){
// cout<<a[i].pos<<' ';
// }
}
}
return 0;
}
40分好像相同元素有问题 非考场代码,我废了