#include <bits/stdc++.h>
const int N = 2e5 + 100, M = 1e6 + 100, second = 1e2 + 100;
const long long mod = 1e9 + 7, MOD = 1e9 + 9, Mod = 1e8;
const long long INF = 1e9, inf = 1e18;
const long double Pi = (22 * 1.0) / (7 * 1.0);
using namespace std;
long long n, a[N];
long long ask(int l, int r) {
  long long x;
  cout << "? " << l << ' ' << r << endl;
  cout.flush();
  cin >> x;
  return x;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  ;
  cin >> n;
  memset(a, -1, sizeof(a));
  for (int i = 1; i <= n - 2; i += 3) {
    long long apb = ask(i, i + 1), apc = ask(i, i + 2), bpc = ask(i + 1, i + 2);
    long long apbpc = (apb + apc + bpc) / 2;
    long long c = apbpc - apb, b = bpc - c, f = apc - c;
    a[i] = f;
    a[i + 1] = b;
    a[i + 2] = c;
  }
  if (a[n - 1] == -1) a[n - 1] = ask(n - 2, n - 1) - a[n - 2];
  if (a[n] == -1) a[n] = ask(n - 1, n) - a[n - 1];
  cout << "! ";
  for (int i = 1; i <= n; i++) cout << a[i] << ' ';
  return cout << endl, 0;
}
