lower = 0 upper = 10**9 + 1 while lower + 1 < upper: mid = (lower + upper) // 2 print('? {}'.format(mid)) ans = int(input()) if ans == 0: print('! {}'.format(max(0, mid - 1))) break if ans == 1: lower = mid upper -= 1 if ans == -1: upper = mid - 1 lower = max(0, lower - 1) else: print('! {}'.format(lower))