fn main() { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let mut itr = s.trim().split_whitespace(); let a: i32 = itr.next().unwrap().parse().unwrap(); let b: i32 = itr.next().unwrap().parse().unwrap(); let c: i32 = itr.next().unwrap().parse().unwrap(); let mut d = b * b - 4 * a * c; if d < 0 { println!("imaginary"); } else if d == 0 { println!("{}", -b as f64 / (2. * a as f64)); } else { let d = (d as f64).sqrt(); let mut ans: Vec = vec![(-b as f64 - d) / (2. * a as f64), (-b as f64 + d) / (2. * a as f64)]; ans.sort_by(|a, b| a.partial_cmp(b).unwrap()); println!("{} {}", ans[0], ans[1]); } }