N = gets.to_i def send_query(k) STDOUT.puts("? #{k}") STDOUT.flush gets.to_i end l = 1 r = N 20.times do k = (l + r) / 2 len = r - l + 1 s = send_query(k) if len.even? && s == len / 2 r = k break elsif s <= len / 2 l = k else r = k end end puts "! 1 #{r}"