#include <bits/stdc++.h>
const int N = 5007;
using namespace std;
int n, a[N], rs;
template <typename T>
void read(T &x) {
  char ch = getchar();
  T f = 1;
  x = 0;
  while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();
  if (ch == '-') f = -1, ch = getchar();
  for (; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
  x *= f;
}
char ans[10];
int ask(int x, int y) {
  printf("? %d %d\n", x, y);
  fflush(stdout);
  read(rs);
  return rs;
}
int main() {
  read(n);
  a[1] = ask(1, 2);
  a[2] = ask(2, 3);
  int tp = ask(1, 3);
  a[2] = (a[1] + a[2] - tp) / 2;
  a[1] = a[1] - a[2];
  a[3] = tp - a[1];
  for (int i = (4); i <= (n); i++) a[i] = ask(1, i) - a[1];
  printf("! ");
  for (int i = (1); i <= (n); i++) {
    if (i != n)
      printf("%d ", a[i]);
    else
      printf("%d\n", a[i]);
    fflush(stdout);
  }
  return 0;
}
