#include using namespace std; vector> dp[3][400009]; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); int n;cin>>n; vector a(n);for(auto&&e:a)cin>>e; vector P;for(int i=0;i&idx)->void { for(int C=1;C<=3;C++){ int R=0,now=0; vector cnt(r-l); for(int i=0;i idxL,idxR; int mid=(l+r)/2; for(auto&&e:idx){ if(a[e]>q; int res_prev=0; while(q--){ int x,y;cin>>x>>y; int L=x^res_prev,R=y^res_prev; // cout<<"L R : "<=2&&R<=n); auto search=[&](auto search,int l,int r,int k,int C)->int { pair p={L,0}; auto it=lower_bound(dp[C-1][k].begin(),dp[C-1][k].end(),p); if(it->second v; for(int C=1;C<=3;C++){ v[C-1]=search(search,0,100001,0,C); } int res=min(v[0]+v[1]+v[2],R-L-(!v[0])-(!v[1])-(!v[2])); cout<