#include #include #include using namespace std; unsigned long long seed; int next(){ seed = seed ^ (seed << 13); seed = seed ^ (seed >> 7); seed = seed ^ (seed << 17); return (seed >> 33); } int main(){ const unsigned int M=2200000000,B=100000; int n,q; scanf("%d%d%llu",&n,&q,&seed); for(int i=0;i<10000;i++)next(); vectora(n); for(int i=0;i>bucket(M/B); vectorbucketsize(M/B); for(auto &e:a)bucket[e/B].push_back(e); bucketsize[0]=bucket[0].size(); for(int i=1;i