#include <bits/stdc++.h>
int query(int i, int j) {
  int sum;
  printf("? %d %d\n", i + 1, j + 1);
  fflush(stdout);
  scanf("%d", &sum);
  return sum;
}
int main() {
  int i, n;
  static int a[5000], sum[3];
  scanf("%d", &n);
  for (i = 0; i <= n; i++) {
    if (i == 3) {
      int half = (sum[0] + sum[1] + sum[2]) / 2;
      a[0] = half - sum[1];
      a[1] = half - sum[2];
      a[2] = half - sum[0];
    }
    if (i < 3)
      sum[i] = query(i, (i + 1) % 3);
    else if (i < n) {
      int s = query(0, i);
      a[i] = s - a[0];
    }
  }
  printf("! ");
  for (i = 0; i < n; i++) printf("%d ", a[i]);
  printf("\n");
  fflush(stdout);
  return 0;
}
