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 \le x_i \le 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
[{"code": "A = sorted([int(a) for a in input().split()])\nm = A[-1]\nprint(m-A[2], m-A[1], m-A[0])\n", "passed": true, "time": 0.19, "memory": 14132.0, "status": "done"}, {"code": "def mp():\n    return map(int, input().split())\n\na = list(mp())\na.sort(reverse = True)\nprint(a[0] - a[1], a[0] - a[2], a[0] - a[3])", "passed": true, "time": 0.23, "memory": 14076.0, "status": "done"}, {"code": "# -*- coding: utf-8 -*-\n\nab, ac, bc, abc = sorted(map(int, input().split()))\nprint(ab + ac - abc, ab + bc -abc, bc + ac - abc)\n", "passed": true, "time": 0.2, "memory": 14288.0, "status": "done"}, {"code": "#\t!/usr/bin/env python3\n#\tencoding: UTF-8\n#\tModified: <16/Apr/2019 08:07:57 PM>\n\n\n#\t\u272a H4WK3yE\u4e61\n#\tMohd. Farhan Tahir\n#\tIndian Institute Of Information Technology (IIIT),Gwalior\n\n\n# ///==========Libraries, Constants and Functions=============///\n\n\nimport sys\n\n\ndef get_array(): return list(map(int, sys.stdin.readline().split()))\n\n\ndef get_ints(): return list(map(int, sys.stdin.readline().split()))\n\n\ndef input(): return sys.stdin.readline().strip()\n\n# ///==========MAIN=============///\n\n\ndef main():\n    p = get_array()\n    p.sort()\n    a, b, c, d = p[0], p[1], p[2], p[3]\n    z = d - a\n    y = d - b\n    x = d - c\n    print(x, y, z)\n\n\ndef __starting_point():\n    main()\n\n__starting_point()", "passed": true, "time": 0.14, "memory": 14176.0, "status": "done"}, {"code": "c, b, a, d = sorted(list(map(int, input().split())))\nprint(d-a, d-b, d-c)", "passed": true, "time": 0.24, "memory": 14236.0, "status": "done"}, {"code": "a = list(map(int,input().split()))\na.sort()\nprint(a[3]-a[2],a[3]-a[1],a[3]-a[0])\n", "passed": true, "time": 0.14, "memory": 14112.0, "status": "done"}]