P = [] for i in range(-1,2): for j in range(-1,2): for k in range(-1,2): P.append([i,j,k]) D = [50,25,13,7,4,2,1] offset = [0,0,0] renzoku = 0 for d in D: min_d = float("inf") for p in P: print("?",offset[0]+d*p[0],offset[1]+d*p[1],offset[2]+d*p[2]) val = int(input()) if min_d>val: min_d = val min_p = p offset = [offset[0]+d*min_p[0],offset[1]+d*min_p[1],offset[2]+d*min_p[2]] if min_p[0]==0 and min_p[1]==0 and min_p[2]==0: renzoku += 1 if renzoku==2: break else: renzoku = 0 print("!",offset[0],offset[1],offset[2])