fn main() { let mut l = 0u64; let mut r = 10u64.pow(10); while r - l > 1 { let mid = (l + r) >> 1; println!("? {}", mid); let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let s = s.trim(); if s == "1" { l = mid; } else { r = mid; } } println!("! {}", l); }