#include<bits/stdc++.h>
using namespace std;
struct node{
long long x,id,s;
}a[10005];
bool cmp(node xxx,node yyy){
if(xxx.x==yyy.x) return xxx.id<yyy.id;
return xxx.x<yyy.x;
}
int main(){
freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);
int n,q;
cin >> n >> q;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i].x);
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[j].id==i){
a[j].s=j;
//cout << a[j].s << " ";
}
}
}
//cout << endl;
while(q--){
long long k,xx,yy;
scanf("%lld",&k);
if(k==1){
scanf("%lld%lld",&xx,&yy);
int ss=0,p=0;
for(int i=1;i<=n;i++){
if(a[i].id==xx){
ss=i;
p=a[i].x;
a[i].x=yy;
break;
}
}
//cout << "ss=" << ss << endl;
int kk=0;
if(yy==p) continue;
if(yy<p){
for(int i=1;i<=n;i++){
if((a[i].x>yy&&a[i].x<p)||(a[i].x==yy&&a[i].id>a[ss].id)||(a[i].x==p&&a[i].id<a[ss].id)){
a[i].s++;
kk++;
}
//else break;
}
a[ss].s-=kk;
}
if(yy>p){
for(int i=1;i<=n;i++){
if((a[i].x<yy&&a[i].x>p)||(a[i].x==yy&&a[i].id<a[ss].id)||(a[i].x==p&&a[i].id>a[ss].id)){
a[i].s--;
kk++;
}
//else break;
}
a[ss].s+=kk;
}
}
if(k==2){
cin >> xx;
//sort(a+1,a+n+1,cmp);
//for(int i=1;i<=n;i++){
//for(int j=1;j<=n;j++){
//if(a[j].id==i){
//a[j].s=j;
//}
//}
//}
for(int i=1;i<=n;i++){
if(a[i].id==xx){
cout << a[i].s << endl;
break;
}
}
}
}
return 0;
}
P.S.你谷测试满分,计蒜客76