#include <bits/stdc++.h>
using namespace std;
template <class t>
inline void rd(t &s) {
  s = 0;
  register char c = getchar();
  while (!isdigit(c)) c = getchar();
  while (isdigit(c)) s = (s << 3) + (s << 1) + (c ^ 48), c = getchar();
  return;
}
int ans[5050];
signed main(void) {
  register int n, x1, x2, x3, x;
  scanf("%d", &n);
  printf("? 1 2\n");
  fflush(stdout);
  scanf("%d", &x1);
  printf("? 2 3\n");
  fflush(stdout);
  scanf("%d", &x2);
  printf("? 1 3\n");
  fflush(stdout);
  scanf("%d", &x3);
  ans[2] = (x1 + x2 - x3) / 2;
  ans[1] = x1 - ans[2];
  ans[3] = x2 - ans[2];
  for (int i = 4; i <= n; ++i) {
    printf("? %d %d\n", i - 1, i);
    fflush(stdout);
    scanf("%d", &x);
    ans[i] = x - ans[i - 1];
  }
  printf("! ");
  for (int i = 1; i <= n; ++i) printf("%d ", ans[i]);
  printf("\n");
  fflush(stdout);
  return 0;
}
