#include <bits/stdc++.h>
using namespace std;
int a[5001];
int main() {
  char s[200001], x[200001], y[200001], z[200001];
  cin >> s;
  int n = atoi(s), i, q = 0;
  for (i = 1; i + 2 <= n; i = i + 3) {
    printf("? %d %d\n", i, (i + 1));
    fflush(stdout);
    scanf("%s", x);
    printf("? %d %d\n", (i), i + 2);
    fflush(stdout);
    scanf("%s", y);
    printf("? %d %d\n", i + 1, i + 2);
    fflush(stdout);
    scanf("%s", z);
    int m = atoi(x), n = atoi(y), o = atoi(z);
    a[i] = (m + n - o) / 2;
    a[i + 1] = (m - n + o) / 2;
    a[i + 2] = (o - m + n) / 2;
    q = q + 3;
  }
  if (q < n) {
    printf("? %d %d\n", 1, i);
    fflush(stdout);
    scanf("%s", x);
    a[i] = atoi(x) - a[1];
    q++;
    if (q < n) {
      printf("? %d %d\n", 1, i + 1);
      fflush(stdout);
      scanf("%s", x);
      a[i + 1] = atoi(x) - a[1];
    }
  }
  printf("! ");
  for (int i = 1; i <= n; i++) {
    printf("%d ", a[i]);
  }
  fflush(stdout);
  return 0;
}
