def partition(a,p,r)
  x = a[r]
  i = p-1
  (p..r-1).each do |j|
    if a[j] <= x
      i = 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)
i = partition(a,0,n-1)
a[i] = "[" + a[i].to_s + "]"
printf("%s\n",a.join(" "))
