def int_ternary_search(f, lo: int, hi: int) -> int: l = lo r = hi while r - l > 3: m1 = l + (r - l) // 3 m2 = r - (r - l) // 3 if f(m1) > f(m2): l = m1 else: r = m2 res = l for i in range(l, r+1): if f(i) < f(res): res = i return res def query(x, y, z): print(f'? {x=} {y=} {z=}') res = int(input()) return res def f(p): match p: case 0: return lambda x: query(x, 0, 0) case 1: return lambda y: query(0, y, 0) case 2: return lambda z: query(0, 0, z) assert False mi = -100 ma = 100 x = int_ternary_search(f(0), mi, ma) y = int_ternary_search(f(1), mi, ma) z = int_ternary_search(f(2), mi, ma) print(f'! {x=} {y=} {z=}')