#include using namespace std; typedef unsigned long long Int; const int N=10005; const int L=10000; const int D=1000; int b[N]; vector margin; int g_seed; unsigned int fastrand() { g_seed=214013*g_seed+2531011; return (g_seed>>16)&(0x7FFF); } int next(int prev) { return 1+prev+((fastrand())&(0b111)); } int getB(int x) { return x-(x%3)*(x%5); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n,a0,x,prev,beg,i,j,limit,cnt,upper,ind,buckets; Int power,ans; freopen("justsort.in","r",stdin); freopen("justsort.out","w",stdout); cin>>n>>a0>>g_seed; if(n%L==0) buckets=n/L; else buckets=(n/L)+1; ind=0; ans=0; power=1; prev=a0; for(i=1;i<=n;i+=L) { ind++; limit=min(n-i+1,L); if(i==1) { beg=2; b[1]=getB(a0); cnt=1; } else { beg=1; cnt=0; } for(j=beg;j<=limit;j++) { x=next(prev); prev=x; b[j]=getB(x); cnt++; } sort(b+1,b+cnt+1); limit=min(cnt,D); for(j=1;j<=limit;j++) margin.push_back(b[j]); sort(margin.begin(),margin.end()); for(j=0;j