ull z; ull R(){ z^=z<<13; z^=z>>7; z^=z<<17; return z>>33; } unsigned int N,Q,A[2d5+1],C[(1<<20)+1]={}; unsigned int query(unsigned int x){ unsigned int p=C[x>>11]; while(A[p]>11)+1]++; rep(i,1<<20) C[i+1]+=C[i]; ull ans=0; rep(i,Q) ans^=(ull)query(R())*i; wt(ans); }