#include <iostream>
#include <set>
#include <cstdlib>
#include <cstring>
using namespace std;
bool contain(int* a, int b) {
for (int i=0; i<10; i++)
if(a[i] == b) return true;
return false;
}
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
bool mymemcmp(int *a, int *b, int siz) {
for(int i=0; i < siz; i++)
if(a[i] != b[i]) return false;
return true;
}
int main()
{
int bb=0;
int tab[10];
for(int i =0; i < 10; i++)
cin >> tab[i];
qsort(tab,10,sizeof(int),compare);
for( int i0=2; i0 < 4999; i0++)
for( int i1=2; i1 < 4999; i1++)
{
if(contain(tab,i0+i1))
for( int i2=2; i2 < 4999; i2++)
{
if(contain(tab,i1+i2))
if(contain(tab,i0+i2))
for( int i3=2; i3 < 4999; i3++)
{
if(contain(tab,i1+i3))
if(contain(tab,i2+i3))
for( int i4=2; i4 < 4999; i4++){
if(contain(tab, i0 + i4))
if(contain(tab, i1 + i4))
if(contain(tab, i2 + i4))
if(contain(tab, i3 + i4))
{
int* newtab = new int[10];
newtab[0] = i0+i4;
newtab[1] = i1+i4;
newtab[2] = i2+i4;
newtab[3] = i3+i4;
newtab[4] = i2+i3;
newtab[5] = i1+i3;
newtab[6] = i0+i3;
newtab[7] = i0+i2;
newtab[8] = i1+i2;
newtab[9] = i0+i1;
qsort(newtab,10, sizeof(int), compare);
if(mymemcmp(newtab,tab,10)) {
cout << i0 << endl;
cout << i1 << endl;
cout << i2 << endl;
cout << i3 << endl;
cout << i4 << endl;
goto out;
}
delete newtab;
}
}
}
}
}
out:
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjc3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjb250YWluKGludCogYSwgaW50IGIpIHsKZm9yIChpbnQgaT0wOyBpPDEwOyBpKyspCiAgICBpZihhW2ldID09IGIpIHJldHVybiB0cnVlOwoKcmV0dXJuIGZhbHNlOwp9CgppbnQgY29tcGFyZSAoY29uc3Qgdm9pZCAqIGEsIGNvbnN0IHZvaWQgKiBiKQp7CiAgcmV0dXJuICggKihpbnQqKWEgLSAqKGludCopYiApOwp9Cgpib29sIG15bWVtY21wKGludCAqYSwgaW50ICpiLCBpbnQgc2l6KSB7CmZvcihpbnQgaT0wOyBpIDwgc2l6OyBpKyspCmlmKGFbaV0gIT0gYltpXSkgcmV0dXJuIGZhbHNlOwoKICAgIHJldHVybiB0cnVlOwp9CgppbnQgbWFpbigpCnsKaW50IGJiPTA7CmludCB0YWJbMTBdOwpmb3IoaW50IGkgPTA7IGkgPCAxMDsgaSsrKQogICAgY2luID4+IHRhYltpXTsKCnFzb3J0KHRhYiwxMCxzaXplb2YoaW50KSxjb21wYXJlKTsKCmZvciggaW50IGkwPTI7IGkwIDwgNDk5OTsgaTArKykKZm9yKCBpbnQgaTE9MjsgaTEgPCA0OTk5OyBpMSsrKQp7CmlmKGNvbnRhaW4odGFiLGkwK2kxKSkKZm9yKCBpbnQgaTI9MjsgaTIgPCA0OTk5OyBpMisrKQp7CmlmKGNvbnRhaW4odGFiLGkxK2kyKSkKaWYoY29udGFpbih0YWIsaTAraTIpKQpmb3IoIGludCBpMz0yOyBpMyA8IDQ5OTk7IGkzKyspCnsKaWYoY29udGFpbih0YWIsaTEraTMpKQppZihjb250YWluKHRhYixpMitpMykpCmZvciggaW50IGk0PTI7IGk0IDwgNDk5OTsgaTQrKyl7CmlmKGNvbnRhaW4odGFiLCBpMCArIGk0KSkKaWYoY29udGFpbih0YWIsIGkxICsgaTQpKQppZihjb250YWluKHRhYiwgaTIgKyBpNCkpCmlmKGNvbnRhaW4odGFiLCBpMyArIGk0KSkKICAgewogICAgICAgaW50KiBuZXd0YWIgPSBuZXcgaW50WzEwXTsKICAgIG5ld3RhYlswXSA9IGkwK2k0OwogICAgbmV3dGFiWzFdID0gaTEraTQ7CiAgICBuZXd0YWJbMl0gPSBpMitpNDsKICAgIG5ld3RhYlszXSA9IGkzK2k0OwogICAgbmV3dGFiWzRdID0gaTIraTM7CiAgICBuZXd0YWJbNV0gPSBpMStpMzsKICAgIG5ld3RhYls2XSA9IGkwK2kzOwogICAgbmV3dGFiWzddID0gaTAraTI7CiAgICBuZXd0YWJbOF0gPSBpMStpMjsKICAgIG5ld3RhYls5XSA9IGkwK2kxOwogICAgcXNvcnQobmV3dGFiLDEwLCBzaXplb2YoaW50KSwgY29tcGFyZSk7CiAgICBpZihteW1lbWNtcChuZXd0YWIsdGFiLDEwKSkgewogICAgICAgIGNvdXQgPDwgaTAgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8IGkxIDw8IGVuZGw7CiAgICAgICAgY291dCA8PCBpMiA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgaTMgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8IGk0IDw8IGVuZGw7CiAgICAgICAgZ290byBvdXQ7CiAgICB9CiAgICBkZWxldGUgbmV3dGFiOwogICB9Cgp9Cn0KfQp9Cm91dDoKCnJldHVybiAwOwp9Cgo=