#include <iostream>
using std::cin;
using std::cout;
int goes_around(int id, int a, int b, int c, int d, int e,
int f, int g, int h, int i, int j)
{
switch (id)
{
case 0: return a;
case 1: return b;
case 2: return c;
case 3: return d;
case 4: return e;
case 5: return f;
case 6: return g;
case 7: return h;
case 8: return i;
case 9: return j;
default: return 0;
}
}
int main()
{
int a, b, c, d, e, f, g, h, i, j;
int n, k, temp;
cin >> n;
k = n;
cin >> a; b = a; --k;
if (k) { cin >> c; a += c; --k; }
if (k) { cin >> d; a += d; --k; }
if (k) { cin >> e; a += e; --k; }
if (k) { cin >> f; a += f; --k; }
if (k) { cin >> g; a += g; --k; }
if (k) { cin >> h; a += h; --k; }
if (k) { cin >> i; a += i; --k; }
if (k) { cin >> j; a += j; --k; }
for (int kk = 0; kk < n-9; ++kk)
{
cin >> temp;
a += temp;
}
b = 2*a - b;
if (++k < n) { c = 2*b - c; }
else { c = 2*b - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { d = 2*c - d; }
else { d = 2*c - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { e = 2*d - e; }
else { e = 2*d - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { f = 2*e - f; }
else { f = 2*e - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { g = 2*f - g; }
else { g = 2*f - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { h = 2*g - h; }
else { h = 2*g - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { i = 2*h - i; }
else { i = 2*h - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
if (++k < n) { j = 2*i - j; }
else { j = 2*i - goes_around(k-n, a, b, c, d, e, f, g, h, i, j); }
cout << a << " " << b << " " << c << " " << d << " " << e << " "
<< f << " " << g << " " << h << " " << i << " " << j << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBzdGQ6OmNpbjsKdXNpbmcgc3RkOjpjb3V0OwoKaW50IGdvZXNfYXJvdW5kKGludCBpZCwgaW50IGEsIGludCBiLCBpbnQgYywgaW50IGQsIGludCBlLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQgZiwgaW50IGcsIGludCBoLCBpbnQgaSwgaW50IGopCnsKICAgIHN3aXRjaCAoaWQpCiAgICB7CiAgICAgICAgY2FzZSAwOiByZXR1cm4gYTsKICAgICAgICBjYXNlIDE6IHJldHVybiBiOwogICAgICAgIGNhc2UgMjogcmV0dXJuIGM7CiAgICAgICAgY2FzZSAzOiByZXR1cm4gZDsKICAgICAgICBjYXNlIDQ6IHJldHVybiBlOwogICAgICAgIGNhc2UgNTogcmV0dXJuIGY7CiAgICAgICAgY2FzZSA2OiByZXR1cm4gZzsKICAgICAgICBjYXNlIDc6IHJldHVybiBoOwogICAgICAgIGNhc2UgODogcmV0dXJuIGk7CiAgICAgICAgY2FzZSA5OiByZXR1cm4gajsKICAgICAgICBkZWZhdWx0OiByZXR1cm4gMDsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpbnQgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgajsKICAgIGludCBuLCBrLCB0ZW1wOwoKICAgIGNpbiA+PiBuOwogICAgayA9IG47CgogICAgY2luID4+IGE7IGIgPSBhOyAtLWs7CiAgICBpZiAoaykgeyBjaW4gPj4gYzsgYSArPSBjOyAtLWs7IH0KICAgIGlmIChrKSB7IGNpbiA+PiBkOyBhICs9IGQ7IC0tazsgfQogICAgaWYgKGspIHsgY2luID4+IGU7IGEgKz0gZTsgLS1rOyB9CiAgICBpZiAoaykgeyBjaW4gPj4gZjsgYSArPSBmOyAtLWs7IH0KICAgIGlmIChrKSB7IGNpbiA+PiBnOyBhICs9IGc7IC0tazsgfQogICAgaWYgKGspIHsgY2luID4+IGg7IGEgKz0gaDsgLS1rOyB9CiAgICBpZiAoaykgeyBjaW4gPj4gaTsgYSArPSBpOyAtLWs7IH0KICAgIGlmIChrKSB7IGNpbiA+PiBqOyBhICs9IGo7IC0tazsgfQogICAgCiAgICBmb3IgKGludCBrayA9IDA7IGtrIDwgbi05OyArK2trKQogICAgewogICAgCWNpbiA+PiB0ZW1wOwogICAgCWEgKz0gdGVtcDsKICAgIH0KCiAgICBiID0gMiphIC0gYjsKCiAgICBpZiAoKytrIDwgbikgeyBjID0gMipiIC0gYzsgfQogICAgZWxzZSAgICAgICAgIHsgYyA9IDIqYiAtIGdvZXNfYXJvdW5kKGstbiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaik7IH0KICAgIGlmICgrK2sgPCBuKSB7IGQgPSAyKmMgLSBkOyB9CiAgICBlbHNlICAgICAgICAgeyBkID0gMipjIC0gZ29lc19hcm91bmQoay1uLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKTsgfQogICAgaWYgKCsrayA8IG4pIHsgZSA9IDIqZCAtIGU7IH0KICAgIGVsc2UgICAgICAgICB7IGUgPSAyKmQgLSBnb2VzX2Fyb3VuZChrLW4sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopOyB9CiAgICBpZiAoKytrIDwgbikgeyBmID0gMiplIC0gZjsgfQogICAgZWxzZSAgICAgICAgIHsgZiA9IDIqZSAtIGdvZXNfYXJvdW5kKGstbiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaik7IH0KICAgIGlmICgrK2sgPCBuKSB7IGcgPSAyKmYgLSBnOyB9CiAgICBlbHNlICAgICAgICAgeyBnID0gMipmIC0gZ29lc19hcm91bmQoay1uLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKTsgfQogICAgaWYgKCsrayA8IG4pIHsgaCA9IDIqZyAtIGg7IH0KICAgIGVsc2UgICAgICAgICB7IGggPSAyKmcgLSBnb2VzX2Fyb3VuZChrLW4sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopOyB9CiAgICBpZiAoKytrIDwgbikgeyBpID0gMipoIC0gaTsgfQogICAgZWxzZSAgICAgICAgIHsgaSA9IDIqaCAtIGdvZXNfYXJvdW5kKGstbiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaik7IH0KICAgIGlmICgrK2sgPCBuKSB7IGogPSAyKmkgLSBqOyB9CiAgICBlbHNlICAgICAgICAgeyBqID0gMippIC0gZ29lc19hcm91bmQoay1uLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKTsgfQoKICAgIGNvdXQgPDwgYSA8PCAiICIgPDwgYiA8PCAiICIgPDwgYyA8PCAiICIgPDwgZCA8PCAiICIgPDwgZSA8PCAiICIKICAgICAgICAgPDwgZiA8PCAiICIgPDwgZyA8PCAiICIgPDwgaCA8PCAiICIgPDwgaSA8PCAiICIgPDwgaiA8PCAiXG4iOwp9Cg==