sort能60分,但是WA两个点,改桶排后0分WA10个
#include<bits/stdc++.h>
using namespace std;
bool tong[100001];
inline int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
inline void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
int main()
{
long long n,m,num[100001];
long long op,l,r;
long long q;
n=read();
m=read();
for(long long i=1;i<=n;i++)
num[i]=read();
for(long long i=1;i<=m;i++)
{
op=read();
l=read();
r=read();
for(long long i=l;i<=r;i++)
tong[num[i]]=true;
long long k=1;
if(op==0)
for(long long i=l;i<=r;i++)
{
while(tong[k]==false)
k++;
num[i]==k;
tong[k]=false;
k++;
}
else
if(op==1)
for(long long i=r;i>=l;i--)
{
while(tong[k]==false)
k++;
num[i]=k;
tong[k]=false;
k++;
}
}
q=read();
write(num[q]);
}