ll@n,a[n+1];
VI v[n+1];
a[0..n]=(0..);
int pr[500];
REP[pr](p,Prime(548,pr)){
	ll pp=(ll)p*p;
	for(ll j=1;j*=pp,j<=n;){
		rep(k,n/j+1){
			a[k*j]/=pp;
		}
	}
}
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();
}