#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, last = 1;
vector<int> v;
int main() {
  cin >> n;
  while (true) {
    if (last == 1) {
      int a, b, c;
      cout << "? " << 1 << ' ' << 2 << '\n';
      cout.flush();
      cin >> a;
      cout << "? " << 1 << ' ' << 3 << '\n';
      cout.flush();
      cin >> b;
      cout << "? " << 2 << ' ' << 3 << '\n';
      cout.flush();
      cin >> c;
      int x, y, z;
      for (int i = 1; i <= a; i++) {
        x = i, y = a - i, z = b - i;
        if (x + y == a && x + z == b && y + z == c) break;
      }
      v.push_back(x);
      v.push_back(y);
      v.push_back(z);
      last = 4;
      continue;
    }
    if (last == n + 1) {
      cout << "! ";
      for (int i = 0; i < v.size(); i++) cout << v[i] << ' ';
      cout.flush();
      break;
    }
    int a;
    cout << "? " << 1 << ' ' << last << '\n';
    cout.flush();
    cin >> a;
    a -= v[0];
    v.push_back(a);
    ++last;
  }
}
