n=int(input()) ans = [0]*n print(f'? {1} {2}',flush=True) t = int(input()) print(f'? {2} {3}',flush=True) t2 = int(input()) for i in range(1,n+1): f = 0 for j in range(1,n+1): if i == j: continue x = (t + t2) - (i + j) if x > 0 and x%2==0: y=x//2 if y+i == t and y + j == t2: ans[0] = i ans[2] = j ans[1] = y f = 1 break if f == 1: break ind = 3 while n > ind: print(f'? {ind-1} {ind}') t=int(input()) ans[ind] = t - ans[ind-1] ind += 1 print('!',*ans)