#include <bits/stdc++.h>
using namespace std;
int n, rev, res[5000], a, b, c;
int main() {
  while (scanf("%d", &n) == 1) {
    rev = n % 3;
    n = n / 3 * 3;
    for (int i = 0; i < n; i += 3) {
      printf("? %d %d\n", i + 1, i + 2);
      fflush(stdout);
      scanf("%d", &a);
      printf("? %d %d\n", i + 2, i + 3);
      fflush(stdout);
      scanf("%d", &b);
      printf("? %d %d\n", i + 1, i + 3);
      fflush(stdout);
      scanf("%d", &c);
      res[i + 1] = (a + b - c) >> 1;
      res[i] = a - res[i + 1];
      res[i + 2] = b - res[i + 1];
    }
    if (rev >= 1) {
      printf("? %d %d\n", n + 1, 1);
      fflush(stdout);
      scanf("%d", &a);
      res[n] = a - res[0];
    }
    if (rev == 2) {
      printf("? %d %d\n", n + 2, 1);
      fflush(stdout);
      scanf("%d", &a);
      res[n + 1] = a - res[0];
    }
    printf("!");
    for (int i = 0; i < n + rev; ++i) printf(" %d", res[i]);
    puts("");
    fflush(stdout);
  }
  return 0;
}
