ll@n,a[n+1]{}; VI v[n+1]; rep(i,1,n+1){ if(!a[i]){ for(ll j=1;j*j*i<=n;++j){ a[j*j*i]=i; } } } rep(i,1,n+1){ v[a[i]].push_back(i); } rep(i,1,n+1){ wtSp(v[a[i]].back()); v[a[i]].pop_back(); }