n=int(input()) A=[] for i in range(n-2): print('?',i+1,i+2,flush=True) A.append(int(input())) if n&1: print('?',n-1,n,flush=True) A.append(int(input())) t=sum([A[i] for i in range(0,n-1,2)]) u=n*(n+1)//2-t ans=[u] for i in range(n-1)[::-1]: ans.append(A[i]-ans[-1]) print('!',*ans[::-1],flush=True) else: print('?',n-3,n-1,flush=True) s=int(input()) t=sum([A[i] for i in range(0,n-4,2)])+s u=n*(n+1)//2-t ans=[u,A[-1]-(A[-1]+A[-2]-s),(A[-1]+A[-2]-s),A[-2]-(A[-1]+A[-2]-s)] for i in range(n-4)[::-1]: ans.append(A[i]-ans[-1]) print('!',*ans[::-1],flush=True)