#include <bits/stdc++.h>
using namespace std;
#define faster ios_base::sync_with_stdio(false); cin.tie(NULL)
#define Bit(mask , i) ((mask >> i) & 1)
#define fi first
#define se second
#define _LOG2(nl) 31 - __builtin_clz(nl)
#define c_bit(nl) __builtin_popcount(nl)
#define ii pair<long long , int>
#define lll pair<long long , pair<long long , long long>>
#define lii pair<long long , pair<long long , int>>
#define iii pair<int , pair<int , int>>
#define iiii pair<pair<int , int> , pair<int , int>>
#define llll pair<pair<__int128 , __int128> , pair<__int128 , __int128>>
#define li pair<long long , int>
#define db long double
#define onBit(mask , i) (mask | (1 << i))
#define offBit(mask , i) (mask & (~(1 << i)))
const int N = 2e5 + 7;
int n;
long long a[N];
void inp(){
cin >> n;
}
long long ask(int i , int j){
cout << "? " << i << " " << j << '\n';
cout.flush();
long long res;
cin >> res;
return res;
}
void solve(){
long long x = ask(1 , 2) , y = ask(2 , 3) , z = ask(1 , 3);
a[1] = (x - y + z) / 2;
a[2] = (x + y - z) / 2;
a[3] = (y + z - x) / 2;
for (int i = 4 ; i <= n ; ++i){
a[i] = ask(3 , i) - a[3];
}
cout << "! ";
for (int i = 1 ; i <= n ; ++i){
cout << a[i] << " ";
}
cout << '\n';
cout.flush();
}
int main(){
// freopen("difmax.inp" , "r" , stdin);
// freopen("difmax.out" , "w" , stdout);
faster;
inp();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdGVyIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpCiNkZWZpbmUgQml0KG1hc2sgLCBpKSAoKG1hc2sgPj4gaSkgJiAxKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgX0xPRzIobmwpIDMxIC0gX19idWlsdGluX2NseihubCkKI2RlZmluZSBjX2JpdChubCkgX19idWlsdGluX3BvcGNvdW50KG5sKQojZGVmaW5lIGlpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGxsbCBwYWlyPGxvbmcgbG9uZyAsIHBhaXI8bG9uZyBsb25nICwgbG9uZyBsb25nPj4KI2RlZmluZSBsaWkgcGFpcjxsb25nIGxvbmcgLCBwYWlyPGxvbmcgbG9uZyAsIGludD4+CiNkZWZpbmUgaWlpIHBhaXI8aW50ICwgcGFpcjxpbnQgLCBpbnQ+PgojZGVmaW5lIGlpaWkgcGFpcjxwYWlyPGludCAsIGludD4gLCBwYWlyPGludCAsIGludD4+CiNkZWZpbmUgbGxsbCBwYWlyPHBhaXI8X19pbnQxMjggLCBfX2ludDEyOD4gLCBwYWlyPF9faW50MTI4ICwgX19pbnQxMjg+PgojZGVmaW5lIGxpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGRiIGxvbmcgZG91YmxlCiNkZWZpbmUgb25CaXQobWFzayAsIGkpIChtYXNrIHwgKDEgPDwgaSkpCiNkZWZpbmUgb2ZmQml0KG1hc2sgLCBpKSAobWFzayAmICh+KDEgPDwgaSkpKQoKY29uc3QgaW50IE4gPSAyZTUgKyA3OwppbnQgbjsKbG9uZyBsb25nIGFbTl07Cgp2b2lkIGlucCgpewogICAgY2luID4+IG47Cn0KCmxvbmcgbG9uZyBhc2soaW50IGkgLCBpbnQgail7CiAgICBjb3V0IDw8ICI/ICIgPDwgaSA8PCAiICIgPDwgaiA8PCAnXG4nOwogICAgY291dC5mbHVzaCgpOwoKICAgIGxvbmcgbG9uZyByZXM7CiAgICBjaW4gPj4gcmVzOwogICAgcmV0dXJuIHJlczsKfQoKdm9pZCBzb2x2ZSgpewogICAgbG9uZyBsb25nIHggPSBhc2soMSAsIDIpICwgeSA9IGFzaygyICwgMykgLCB6ID0gYXNrKDEgLCAzKTsKICAgIGFbMV0gPSAoeCAtIHkgKyB6KSAvIDI7CiAgICBhWzJdID0gKHggKyB5IC0geikgLyAyOwogICAgYVszXSA9ICh5ICsgeiAtIHgpIC8gMjsKCiAgICBmb3IgKGludCBpID0gNCA7IGkgPD0gbiA7ICsraSl7CiAgICAgICAgYVtpXSA9IGFzaygzICwgaSkgLSBhWzNdOwogICAgfQogICAgY291dCA8PCAiISAiOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyArK2kpewogICAgICAgIGNvdXQgPDwgYVtpXSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8ICdcbic7CiAgICBjb3V0LmZsdXNoKCk7Cn0KCmludCBtYWluKCl7Ci8vICAgIGZyZW9wZW4oImRpZm1heC5pbnAiICwgInIiICwgc3RkaW4pOwovLyAgICBmcmVvcGVuKCJkaWZtYXgub3V0IiAsICJ3IiAsIHN0ZG91dCk7CiAgICBmYXN0ZXI7CiAgICBpbnAoKTsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=