#include <bits/stdc++.h>
using namespace std;
long long int factorial(long long int n) {
  return (n == 1 || n == 0) ? 1 : n * factorial(n - 1);
}
long long int power(long long int x, long long int y) {
  long long int res = 1;
  while (y > 0) {
    if (y & 1) res = res * x;
    y = y >> 1;
    x = x * x;
  }
  return res;
}
long long int powerMod(long long int x, long long int y, long long int m) {
  if (y == 0) return 1;
  long long int p = powerMod(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
long long int modInverse(long long int a, long long int m) {
  return powerMod(a, m - 2, m);
}
long long int gcd(long long int a, long long int b) {
  if (a == 0) {
    return b;
  } else if (b == 0) {
    return a;
  } else {
    if (a > b) {
      return gcd(a % b, b);
    } else {
      return gcd(b % a, a);
    }
  }
}
void pre() {}
void solve() {
  long long int n = 0, l = 0, r = 0, x = 0;
  cin >> n;
  fflush(stdout);
  vector<long long int> v(n), v1(n - 1);
  for (long long int i = 0; i < n - 1; i++) {
    cout << "? 1 " << i + 2;
    cout << "\n";
    fflush(stdout);
    cin >> x;
    v1[i] = x;
  }
  cout << "? 2 3\n";
  fflush(stdout);
  cin >> x;
  for (long long int i = n - 1; i >= 2; i--) {
    v[i] = v1[i - 1] - v1[i - 2];
  }
  v[0] = v1[1] - x;
  v[1] = v1[0] - v[0];
  cout << "! ";
  for (long long int i = 0; i < n; i++) cout << v[i] << " ";
  fflush(stdout);
}
int main() {
  long long int t = 1;
  pre();
  while (t--) solve();
  return 0;
}
