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

n = gets.to_i
arr = gets.split.map(&:to_i)

idx = partition(arr, 0, n-1)
arr[idx] = sprintf "[%d]", arr[idx]
puts arr.join(" ")