l, r = 10, 1_000_000_000
border = 400
puts "? #{border}"
STDOUT.flush
count = 0

while (res = gets.not_nil!.to_i) != 0
  if res == 1
    l = border - 1
    r -= 1
  else
    r = border - 2
    l -= 1
  end
  border = [(l + r + 1) / 2, 0].max
  puts "? #{border}"
  STDOUT.flush
  count += 1
end

puts "! #{border + count}"