#include<iostream>
#include<algorithm>
#include<set>
const int sz=1e5+10;
struct ST{
struct node{
int lson,rson,val;
}tree[sz<<7];
int num=0;
void add(int&p,int ln,int rn,int pos,int val){
if(p==0)p=++num;
tree[p].val+=val;
if(ln==rn)return;
int mid=ln+rn>>1;
if(pos<=mid)add(tree[p].lson,ln,mid,pos,val);
else add(tree[p].rson,mid+1,rn,pos,val);
}
int merge(int x,int y){
if(x==0||y==0)return x+y;
tree[x].val+=tree[y].val;
tree[x].lson=merge(tree[x].lson,tree[y].lson);
tree[x].rson=merge(tree[x].rson,tree[y].rson);
return x;
}
void split(int x,int &y,int k,bool up){
if(x==0)return;
y=++num;
tree[y].val=tree[x].val-k;
tree[x].val=k;
if(up){
int lsz=tree[tree[x].lson].val;
if(lsz<k)split(tree[x].rson,tree[y].rson,k-lsz,up);
else std::swap(tree[x].rson,tree[y].rson);
if(lsz>k)split(tree[x].lson,tree[y].lson,k,up);
}else{
int rsz=tree[tree[x].rson].val;
if(rsz<k)split(tree[x].lson,tree[y].lson,k-rsz,up);
else std::swap(tree[x].lson,tree[y].lson);
if(rsz>k)split(tree[x].rson,tree[y].rson,k,up);
}
}
int query(int p,int ln,int rn,int k){
if(ln==rn)return tree[p].val;
int mid=ln+rn>>1;
if(k<=tree[tree[p].lson].val)return query(tree[p].lson,ln,mid,k);
return query(tree[p].rson,mid+1,rn,tree[tree[p].lson].val);
}
}st;
struct node{
mutable int l,r,root;
mutable bool up;
bool operator<(const node&a)const{
return l<a.l;
}
};
int n,q;
std::set<node>arr;
auto split(int x){
auto it=--arr.upper_bound(node{x,0,0,false});
if(it->l==x)return it;
auto res=arr.insert(node{x,it->r,0,false}).first;
it->r=x-1;
st.split(it->root,res->root,x-it->l,it->up);
return res;
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin>>n>>q;
for(int i=1,x;i<=n;i++){
std::cin>>x;
int rt=0;
st.add(rt,1,n,x,1);
arr.insert(node{i,i,rt,true});
}
while(q--){
int op,l,r;
std::cin>>op>>l>>r;
auto itr=split(r+1),itl=split(l);
auto citl=itl;
citl->up=op==0,++itl;
for(auto it=itl;it!=itr;++it)
citl->root=st.merge(citl->root,it->root);
arr.erase(itl,itr);
}
int x;
std::cin>>x;
auto it=split(x-1);
std::cout<<st.query(it->root,1,n,1)<<"\n";
return 0;
}