from sys import stdin, stdout input = lambda: stdin.readline().rstrip() write = stdout.write def main(): x = y = z = 0 for s in ('x', 'y', 'z'): d = dist(s, x, y, z) if s == 'x': x = d elif s == 'y': y = d else: z = d print('!', x, y, z) def dist(axis, x, y, z): point = -100 max_ = 150 dmin = float('inf') while point < max_: xi = point if axis == 'x' else x yi = point if axis == 'y' else y zi = point if axis == 'z' else z print('?', xi, yi, zi) d = int(input()) if d < dmin: dmin = d else: break point += 10 while 1: point -= 1 xi = point if axis == 'x' else x yi = point if axis == 'y' else y zi = point if axis == 'z' else z print('?', xi, yi, zi) d = int(input()) if d < dmin: dmin = d else: break return point + 1 main()