N = gets.to_i ans = [*0..N] checked = Hash.new(false) 1.upto(N) do |i| next if checked[i] nums = [i] q = 2 while i * q * q <= N nums << i * q * q q += 1 end len = nums.size len.times do |i| ans[nums[i]] = nums[len - 1 - i] checked[nums[i]] = true end end puts ans[1..].join(' ')