output_description: Print N lines. The i-th line should contain B_i.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      X_1 X_2 ... X_N
attempt: # -*- coding: utf-8 -*-
  import sys
  import math
  import os
  import itertools
  import string
  import heapq
  import _collections
  from collections import Counter
  from collections import defaultdict
  from functools import lru_cache
  import bisect
  import re
  import queue
  
  
  class Scanner:
      @staticmethod
      def int():
          return int(sys.stdin.readline().rstrip())
  
      @staticmethod
      def string():
          return sys.stdin.readline().rstrip()
  
      @staticmethod
      def map_int():
          return [int(x) for x in Scanner.string().split()]
  
      @staticmethod
      def string_list(n):
          return [input() for i in range(n)]
  
      @staticmethod
      def int_list_list(n):
          return [Scanner.map_int() for i in range(n)]
  
      @staticmethod
      def int_cols_list(n):
          return [int(input()) for i in range(n)]
  
  
  class Math:
      @staticmethod
      def gcd(a, b):
          if b == 0:
              return a
          return Math.gcd(b, a % b)
  
      @staticmethod
      def lcm(a, b):
          return (a * b) // Math.gcd(a, b)
  
      @staticmethod
      def roundUp(a, b):
          return -(-a // b)
  
      @staticmethod
      def toUpperMultiple(a, x):
          return Math.roundUp(a, x) * x
  
      @staticmethod
      def toLowerMultiple(a, x):
          return (a // x) * x
  
      @staticmethod
      def nearPow2(n):
          if n <= 0:
              return 0
          if n & (n - 1) == 0:
              return n
          ret = 1
          while n > 0:
              ret <<= 1
              n >>= 1
          return ret
  
      @staticmethod
      def sign(n):
          if n == 0:
              return 0
          if n < 0:
              return -1
          return 1
  
      @staticmethod
      def isPrime(n):
          if n < 2:
              return False
          if n == 2:
              return True
          if n % 2 == 0:
              return False
          d = int(n**0.5) + 1
          for i in range(3, d + 1, 2):
              if n % i == 0:
                  return False
          return True
  
  
  class PriorityQueue:
      def __init__(self, l=[]):
          self.__q = l
          heapq.heapify(self.__q)
          return
  
      def push(self, n):
          heapq.heappush(self.__q, n)
          return
  
      def pop(self):
          return heapq.heappop(self.__q)
  
  
  MOD = int(1e09) + 7
  INF = int(1e15)
  
  
  def calc(N):
      return sum(int(x) for x in str(N))
  
  
  def main():
      # sys.stdin = open("sample.txt")
      N = Scanner.int()
      A = Scanner.map_int()
      B = sorted(A)
      m1 = B[N // 2 - 1]
      m2 = B[N // 2]
  
      for i in range(N):
          if A[i] < m2:
              print(m2)
          else:
              print(m1)
      return
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  When l is an odd number, the median of l numbers a_1, a_2, ..., a_l is the
  (\frac{l+1}{2})-th largest value among a_1, a_2, ..., a_l.
  
  You are given N numbers X_1, X_2, ..., X_N, where N is an even number. For
  each i = 1, 2, ..., N, let the median of X_1, X_2, ..., X_N excluding X_i,
  that is, the median of X_1, X_2, ..., X_{i-1}, X_{i+1}, ..., X_N be B_i.
  
  Find B_i for each i = 1, 2, ..., N.
samples: [{"input": "4\n    2 4 4 3", "output": "4\n    3\n    3\n    4\n    \n\n  * Since the median of X_2, X_3, X_4 is 4, B_1 = 4.\n  * Since the median of X_1, X_3, X_4 is 3, B_2 = 3.\n  * Since the median of X_1, X_2, X_4 is 3, B_3 = 3.\n  * Since the median of X_1, X_2, X_3 is 4, B_4 = 4.\n\n* * *"}, {"input": "2\n    1 2", "output": "2\n    1\n    \n\n* * *"}, {"input": "6\n    5 5 4 4 3 3", "output": "4\n    4\n    4\n    4\n    4\n    4"}]