#include <bits/stdc++.h>
using namespace std;
long long int arr[5005], res[5005];
int main() {
  long long int i, j, k, l, m, n, t, q, w, x, y, c = 0, f = 0;
  cin >> n;
  if (n % 2 != 0) {
    for (i = 1; i < n; i++) {
      cout << "? " << i << " " << i + 1 << endl;
      fflush(stdout);
      cin >> arr[i];
    }
    cout << "? " << 1 << " " << n << endl;
    fflush(stdout);
    cin >> arr[n];
    for (i = 1; i <= n; i++) {
      c += arr[i];
    }
    c = c / 2;
    for (i = 1; i < n; i += 2) {
      f += arr[i];
    }
    res[n] = c - f;
    for (i = n - 1; i > 0; i--) {
      res[i] = arr[i] - res[i + 1];
    }
    cout << "!"
         << " ";
    for (i = 1; i <= n; i++) {
      cout << res[i] << " ";
    }
  } else {
    m = n - 1;
    for (i = 1; i < m; i++) {
      cout << "? " << i << " " << i + 1 << endl;
      fflush(stdout);
      cin >> arr[i];
    }
    cout << "? " << 1 << " " << m << endl;
    fflush(stdout);
    cin >> arr[m];
    cout << "? " << n - 1 << " " << n << endl;
    fflush(stdout);
    cin >> w;
    for (i = 1; i <= m; i++) {
      c += arr[i];
    }
    c = c / 2;
    for (i = 1; i < m; i += 2) {
      f += arr[i];
    }
    res[m] = c - f;
    for (i = m - 1; i > 0; i--) {
      res[i] = arr[i] - res[i + 1];
    }
    cout << "!"
         << " ";
    for (i = 1; i <= m; i++) {
      cout << res[i] << " ";
    }
    cout << w - res[m];
  }
}
