#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m, i;
  cin >> n;
  vector<int> w(n + 1);
  if (n % 2 != 0) {
    for (i = 1; i < n; i++) {
      cout << "?"
           << " " << i << " " << i + 1 << endl;
      cin >> m;
      w[i] = (i & 1) ? m : -m;
    }
    cout << "?"
         << " " << 1 << " " << n << endl;
    cin >> m;
    w.back() = (i & 1) ? m : -m;
    int elem = accumulate(w.begin(), w.end(), 0) / 2;
    cout << "!"
         << " " << elem << " ";
    for (i = 1; i < n; i++) {
      int foo = abs(elem - abs(w[i]));
      cout << foo << " ";
      elem = foo;
    }
  } else {
    for (i = 1; i < n - 1; i++) {
      cout << "?"
           << " " << i << " " << i + 1 << endl;
      cin >> m;
      w[i] = (i & 1) ? m : -m;
    }
    cout << "?"
         << " " << 1 << " " << n - 1 << endl;
    cin >> m;
    w[i] = (i & 1) ? m : -m;
    cout << "?"
         << " " << n - 1 << " " << n << endl;
    cin >> m;
    w.back() = (i & 1) ? m : -m;
    int elem = accumulate(w.begin(), w.end() - 1, 0) / 2;
    cout << "!"
         << " " << elem << " ";
    w[i] = w.back();
    for (i = 1; i < n; i++) {
      int foo = abs(elem - abs(w[i]));
      cout << foo << " ";
      elem = foo;
    }
  }
}
