def partition(a, p, r)
	x = a[r]
	i = p-1
	p.upto(r-1) do |j|
		if a[j] <= x
			i += 1
			a[i], a[j] = a[j], a[i]
		end
	end
	a[i+1], a[r] = a[r], a[i+1]
	return i+1
end

n = gets.to_i
a = gets.split.map &:to_i

q = partition(a, 0, n - 1)
a[q] = "[" + a[q].to_s + "]"
puts a.join(" ")