#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int a[8003],b[8003],arank[8003];//arank[i]指在a[i]同样的值中排第几。
int q,n,cnt,cz,x,v;
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+n+1);
for(int i=1;i<=n;i++)
{
int tcnt=0;
for(int j=1;j<=n;j++)
{
if(a[i]==a[j]){
tcnt++;
arank[j]=tcnt;
}
}
}
for(int i=1;i<=q;i++)
{
scanf("%d",&cz);
if(cz==1){
scanf("%d %d",&x,&v);
int tmp=a[x];
a[x]=v;
int tcnt=0;
for(int j=1;j<=n;j++)
{
if(a[j]==v){
tcnt++;
arank[j]=tcnt;
}
}
tcnt=0;
for(int j=1;j<=n;j++)
{
if(a[j]==tmp){
tcnt++;
arank[j]=tcnt;
}
}
for(int i=1;i<=n;i++)
{
b[i]=a[i];
}
sort(b+1,b+n+1);
}
else{
scanf("%d",&x);
int tcnt=0;
while(b[++tcnt]!=a[x]) ;
cout<<tcnt-1+arank[x]<<endl;
}
}/*
for(int i=1;i<=n;i++)
cout<<a[i]<<' ';
cout<<endl;
for(int i=1;i<=n;i++)
cout<<arank[i]<<' ';*/
return 0;
}
求助