Вася купил стол, у которого n ножек. Каждая ножка состоит из двух частей, которые соединяются друг с другом. Каждая часть может быть произвольной положительной длины, но гарантируется, что из всех 2n частей возможно составить n ножек одинаковой длины. При составлении ножки любые две части могут быть соединены друг с другом. Изначально все ножки стола разобраны, а вам заданы длины 2n частей в произвольном порядке.

Помогите Васе собрать все ножки стола так, чтобы все они были одинаковой длины, разбив заданные 2n части на пары правильным образом. Каждая ножка обязательно должна быть составлена ровно из двух частей, не разрешается использовать как ножку только одну часть.


-----Входные данные-----

В первой строке задано число n (1 ≤ n ≤ 1000) — количество ножек у стола, купленного Васей.

Во второй строке следует последовательность из 2n целых положительных чисел a_1, a_2, ..., a_2n (1 ≤ a_{i} ≤ 100 000) — длины частей ножек стола в произвольном порядке.


-----Выходные данные-----

Выведите n строк по два целых числа в каждой — длины частей ножек, которые надо соединить друг с другом. Гарантируется, что всегда возможно собрать n ножек одинаковой длины. Если ответов несколько, разрешается вывести любой из них.


-----Примеры-----
Входные данные
3
1 3 2 4 5 3

Выходные данные
1 5
2 4
3 3

Входные данные
3
1 1 1 2 2 2

Выходные данные
1 2
2 1
1 2

Difficulty: interview

Starter code:

Solutions:
a = int(input())
lt = sorted(list(map(int, input().split())))

for i in range(len(lt)//2):
	print(lt[i], lt[-i-1])

n=int(input())
a=list(map(int,input().split()))
#if n==1:
#    print(a[0])
#    return
for i in range(n):
    b=max(a)
    c=min(a)
    print(b,c)
    a.remove(b)
    a.remove(c)


n = int(input())
k = sorted(map(int, input().split()))
j = -1
for i in range(n):
    print(k[i], k[j])
    j -= 1


n=int(input())
s=[int(z) for z in input().split()]
s.sort()
for i in range(n):
	print(s[i],s[2*n-i-1])

n = int(input())
a = list(map(int, input().split()))
a.sort()
for i in range(n):
    print(a[i], a[-i-1])


n = int(input())
a = [int(x) for x in input().split()]
a.sort()
for i in range(n):
    print(a[i], a[2 * n - 1 - i])
    


n = int(input())
a = list(map(int, input().split()))
l = sum(a) // n
a.sort()
for i in range(n):
    print(a[i], l - a[i])
    


n = int(input())
s = list(map(int, input().split()))
s.sort()
for i in range(n):
    print(s[i], s[2 * n - i - 1])





n=int(input())
per = list(map(int, input().split()))
per.sort()
for i in range(n):
    print(per[i], per[-(i+1)])


n = int(input())
box = list(map(int, input().split()))
e = sum(box)//2
box.sort()
for i in range(n):
    print(str(box[0])+' '+str(box[-1]))
    box.pop(0)
    box.pop(-1)
    


n = int(input())
a = [int(x) for x in input().split()]
a.sort()
for i in range(n):
    print(a[i], a[2 * n - i - 1])

n = int(input())
x = sorted(list(map(int, input().split())))
for i in range(n):
	print(x[i], x[2*n - i - 1])


from collections import deque
n = int(input())
h = sorted(list(map(int, input().split())))
data = deque(h)
for i in range(n):
    print(data[0], data[-1])
    data.pop()
    data.popleft()

n = int(input())
arr = list(map(int, input().split()))
arr.sort()
for i in range(n):
	print(arr[i], arr[-1-i])

n=int(input())
a=list(map(int, input().split()))
s=0
for i in range(len(a)):
    s+=a[i]
e=s//n
while len(a)!=0:
    u=e-a[0]
    print(a[0],u)
    a.pop(0)
    a.remove(u)


n = int(input())
l = sorted(list(map(int,input().split(" "))))
length = l[0]+l[-1]
for i in range(n):
    print(l[i],length-l[i])

mvalues = 10 ** 5 + 1
n = int(input())
size = list(map(int, input().split()))
length = sum(size) // n
count = [0] * (mvalues)
for v in size:
    count[v] += 1
for i in range(mvalues):
    while count[i]:
        count[i] -= 1
        count[length - i] -= 1
        print(i, length - i)

n = int(input())
A = list(map(int, input().split()))
a = sum(A)//n
for i in range(n):
    e=a-A[0]
    for j in range(1, 2*n):
        if A[j]==e:
            print(A[0], A[j])
            del A[j]
            del A[0]
            break

b = int(input())
a = [int(i) for i in input().split()]
c = 0
for i in range(len(a)) :
    c += a[i]
c /= b
while len(a) > 0 :
    d = a.pop(0)
    for i in range(len(a)) :
        if a[i] == c-d :
            f = a.pop(i)
            break
    print(d , f)

n = int(input())
a = input().split()
s = 0
for i in range(len(a)):
    a[i] = int(a[i])
    s = s + a[i]
l = s//n
a.sort()

for i in range(n):
    print(a[i],l-a[i])


n = int(input())
a = list(map(int, input().split()))
d = sum(a) // n
was = [False] * (2 * n)
for i in range(2 * n):
    if was[i]: continue
    for j in range(i + 1, 2 * n):
        if was[j]: continue
        if a[i] + a[j] == d:
            print(a[i], a[j])
            was[i] = True
            was[j] = True
            break

n = int(input())
s = input().split()
a = []
b = []
for i in range(2*n):
    a.append(int(s[i]))
a.sort()
for i in range(len(a)):
    b.append(str(a[i]) + ' ' + str(a[-i-1]))
for i in range(n):
    print(''.join(b[i]))






n=int(input())
a=list(map(int,input().split()))
s=0
ch=0
for i in range(2*n):
    s+=a[i]
dl=s//n
for i in range(2*n-1):
    for j in range(i+1,2*n):
        if a[i]>a[j]:
            a[i],a[j]=a[j],a[i]
for i in range(n):
    print(a[i], dl-a[i])


n = int(input())
parts = sorted(list(map(int, input().split())))

length = sum(parts) // n
pairs = []

for i in range(len(parts) // 2):
    pairs.append((parts[i], length - parts[i]))

print('\n'.join([' '.join(map(str, pair)) for pair in pairs]))

n=int(input())
a=[int(i) for i in input().split()]
a.sort()
for i in range(0,n):
    print(str(a[i])+" "+str(a[2*n-1-i]))