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]<x) p++; return p; } { rd(N,Q,z); REP(1d4) R(); A[0..N-1]=R(); A[N]=~0u; sort(A,A+N); C[(A[0..N-1]>>11)+1]++; rep(i,1<<20) C[i+1]+=C[i]; ull ans=0; rep(i,Q) ans^=(ull)query(R())*i; wt(ans); }