Problem: Polycarp has guessed three positive integers a, b and c. He keeps these numbers in secret, but he writes down four numbers on a board in arbitrary order — their pairwise sums (three numbers) and sum of all three numbers (one number). So, there are four numbers on a board in random order: a+b, a+c, b+c and a+b+c.

You have to guess three numbers a, b and c using given numbers. Print three guessed integers in any order.

Pay attention that some given numbers a, b and c can be equal (it is also possible that a=b=c).

Input

The only line of the input contains four positive integers x_1, x_2, x_3, x_4 (2 ≤ x_i ≤ 10^9) — numbers written on a board in random order. It is guaranteed that the answer exists for the given number x_1, x_2, x_3, x_4.

Output

Print such positive integers a, b and c that four numbers written on a board are values a+b, a+c, b+c and a+b+c written in some order. Print a, b and c in any order. If there are several answers, you can print any. It is guaranteed that the answer exists.

Examples

Input


3 6 5 4


Output


2 1 3


Input


40 40 40 60


Output


20 20 20


Input


201 101 101 200


Output


1 100 100

Solution (in PYTHON3):

Solution:
'''
# Театральная площадь
import math
n, m, a = map(int, input().split())
bb = math.ceil(n/a)
b = math.ceil(m/a)
print(bb* b)
# Укладка доминошками
m, n = map(int, input().split())
pl = n*m
print(pl//2)
# Bit++
x = 0
n = int(input())
while n > 0:
    a = input()
    if a == '--X' or a == 'X--':
        x -= 1
    elif a == '++X' or a == 'X++':
        x += 1
    n -= 1
print(x)
# Неправильное вычитание
n, k = map(int, input().split())
while k > 0:
    end = n % 10
    if end != 0:
        n -= 1
    elif end == 0:
        n //= 10
    k -= 1
print(n)
# Чет и нечет
n, k = map(int, input().split())
x = n //2 + n% 2
if k <= x:
    print(2*k-1)
elif k > x:
    print(2*(k-x))
'''
# Восстановление трех чисел
x = list(map(int, input().split()))
maxx = max(x) #произведение
x.sort()
print(maxx-x[0], maxx-x[1], maxx-x[2])