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();
}