fn main() { let stdin = std::io::stdin(); let ref mut stdin = stdin.lock(); println!("? 0 0"); let ref mut buf = String::new(); std::io::BufRead::read_line(stdin, buf).ok(); let d1: u32 = buf.trim().parse().unwrap(); println!("? 100 0"); let ref mut buf = String::new(); std::io::BufRead::read_line(stdin, buf).ok(); let d2: u32 = buf.trim().parse().unwrap(); for a in 0u32..=100 { for b in 0u32..=100 { if a.pow(2) + b.pow(2) == d1 && (100 - a).pow(2) + b.pow(2) == d2 { println!("! {} {}", a, b); } } } }