ll@n,a[n+1]; VI v[n+1]; rep(i,1,n+1){ ll j=i; rrep(k,1,547){ if(j%(k*k)==0){ j/=k*k; } } a[i]=j; v[j].push_back(i); } rep(i,1,n+1){ wtSp(v[a[i]].back()); v[a[i]].pop_back(); }