#include <bits/stdc++.h>
using namespace std;
long long int dr[] = {0, 1, -1, 0, 1, -1, -1, 1};
long long int dc[] = {-1, 0, 0, 1, 1, 1, -1, -1};
int main() {
  int n;
  cin >> n;
  int atual = 1;
  int g = 0;
  int a, b, c;
  int v[10000];
  int sum1, sum2, sum3;
  while (g < n && atual <= n) {
    if (atual + 1 > n) {
      atual = n;
      cout << "? " << atual - 1 << " " << atual << endl;
      cin >> sum1;
      v[atual] = sum1 - v[atual - 1];
      break;
    }
    if (atual + 2 > n) {
      atual = n - 1;
      a = v[atual - 1];
      cout << "? " << atual - 1 << " " << atual << endl;
      cin >> sum1;
      v[atual] = sum1 - a;
      g++;
      if (g == n) break;
      cout << "? " << atual << " " << atual + 1 << endl;
      cin >> sum2;
      v[atual + 1] = sum2 - v[atual];
      break;
    } else {
      cout << "? " << atual << " " << atual + 1 << endl;
      cin >> sum1;
      cout << "? " << atual + 1 << " " << atual + 2 << endl;
      cin >> sum2;
      cout << "? " << atual << " " << atual + 2 << endl;
      cin >> sum3;
      c = (sum2 + sum3 - sum1) / 2;
      v[atual + 2] = c;
      v[atual] = sum3 - c;
      v[atual + 1] = sum2 - c;
      g += 3;
      atual += 3;
    }
  }
  cout << "!";
  for (int i = 1; i <= n; i++) {
    cout << " " << v[i];
  }
  cout << endl;
}
