#include<bits/stdc++.h>
using namespace std;
int n,q,B,l1,r1,l2,r2,l3,r3,a[100005],p[100005];
struct question
{
int l,r,id;
bool operator<(const question t)const
{
if((l/B)^(t.l/B))return l<t.l;
if((l/B)&1)return r<t.r;
else return r>t.r;
}
}ask[300005];
bitset<100005>s,t[40000];
int ans[200005],sum[200005];
inline void add(int x){s[x+sum[x]]=1;++sum[x];}
inline void del(int x){--sum[x];s[x+sum[x]]=0;}
inline void solve()
{
int tot=0;
for(int i=1;i<40000&&q;i++)
{
q--;
cin>>l1>>r1>>l2>>r2>>l3>>r3;
ask[++tot]={l1,r1,i},ask[++tot]={l2,r2,i},ask[++tot]={l3,r3,i};
t[i].set();
assert(t[i].count());
}
assert(t[1].count());
B=n/sqrt(tot);
sort(ask+1,ask+tot+1);
s.reset();
memset(sum,0,sizeof sum);
for(int i=1,l=1,r=0;i<=tot;i++)
{
while(l>ask[i].l)l--,add(a[l]);
while(r<ask[i].r)r++,add(a[r]);
while(l<ask[i].l)del(a[l]),l++;
while(r>ask[i].r)del(a[r]),r--;
ans[ask[i].id]+=r-l+1;
t[ask[i].id]&=s;
assert(!t[ask[i].id].count());
cout<<"*"<<l<<" "<<r<<" "<<s.count()<<" "<<ask[i].id<<endl;
}
for(int i=1;i<=tot/3;i++)cout<<ans[i]-3*t[i].count()<<endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>q;
for(int i=1;i<=n;i++)cin>>a[i],p[i]=a[i];
for(int i=1;i<=n;i++)a[i]=lower_bound(p+1,p+n+1,a[i])-a;
solve(),solve(),solve();
return 0;
}```
为什么代码在第29行报错,但在第27行不报错?