#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, x;
  cin >> n;
  map<int, int> m;
  vector<pair<pair<int, int>, int>> v;
  cout.flush();
  for (int i = 0; i < 2; i++) {
    cout << '?' << " " << 1 << " " << i + 2 << '\n';
    cout.flush();
    cin >> x;
    v.push_back({{1, i + 2}, x});
  }
  cout << '?' << " " << 2 << " " << 3 << '\n';
  cout.flush();
  cin >> x;
  v.push_back({{2, 3}, x});
  m[1] = (v[0].second + v[1].second - v[2].second) / 2;
  m[2] = (v[0].second - m[1]);
  m[3] = (v[1].second - m[1]);
  for (int i = 4; i <= n; i++) {
    cout << '?' << " " << 2 << " " << i << '\n';
    cout.flush();
    cin >> x;
    v.push_back({{2, i}, x});
  }
  for (int i = 3; i < v.size(); i++) {
    m[v[i].first.second] = v[i].second - m[v[i].first.first];
  }
  cout << '!';
  for (int i = 1; i <= n; i++) {
    cout << " " << m[i];
  }
  return 0;
}
