#include #include using namespace atcoder; using namespace std; using ll=long long; using mint=modint998244353; const int b=500; using ar=array; int d,w,n,m; ll op(ll x,ll y){ return min(x%m,y%m)+min(x/m%m,y/m%m)*m+min(x/m/m,y/m/m)*m*m; } ll e(){ return n*m*m+n*m+n;; } bool F(ll x){ if(w==0)return x%m>=d; else if(w==1) return x/m%m>=d; else return x/m/m>=d; } int main() { cin>>n; m=n+1; vector a(n); for(int i=0;i>a[i]; for(int i=0;i> stv((n+b-1)/b); stv[0]=segtree(vector(n+1,0)); for(int i=1;i<(n+b-1)/b;i++){ stv[i]=stv[i-1]; for(int j=(i-1)*b;j>q; while(q--){ ll x,y; cin>>x>>y; x^=key;y^=key; x--; while(x>=n){ } int p=y/b; vector> rec; set s; for(int i=p*b;i(0)),y-x-2); } cout<