#include <bits/stdc++.h>
using namespace std;
long long int ar[500009], cr[500009], br[500009], tr[500009];
long long int fx[] = {-1, 1, 0, 0};
long long int fy[] = {0, 0, 1, -1};
map<long long int, long long int> mp;
vector<long long int> v[500009];
string s, q;
struct evan {
  long long int l, r, w;
} st[500009];
bool com(evan a, evan b) { return a.l < b.l; }
int main() {
  long long int a, b, c, d, e, i, j, k, x, y, z, f, g, h, n, m;
  cin >> a;
  b = a;
  cout << "? 2 3" << endl;
  cin >> x;
  y = 2;
  a--;
  while (a--) {
    cout << "? 1 " << y << endl;
    cin >> ar[y];
    y++;
  }
  br[1] = (ar[2] + ar[3] - x) / 2;
  cout << "! " << br[1] << " ";
  for (i = 2; i <= b; i++) {
    cout << (ar[i] - br[1]) << " ";
  }
}
