fn main() { let (big_a, big_b, a, b) = input_tuple::(); for x in 0..100_000_000 { if x % big_a == a && x % big_b == b { println!("{}", x); return; } } } fn input_tuple() -> (T, T, T, T) where T: std::str::FromStr, ::Err: std::fmt::Debug, { let stdin = std::io::stdin(); let mut buf = String::new(); stdin.read_line(&mut buf).unwrap(); buf = buf.trim_end().to_owned(); let mut iter = buf.split_whitespace(); let n = iter.next().unwrap().parse().unwrap(); let m = iter.next().unwrap().parse().unwrap(); let l = iter.next().unwrap().parse().unwrap(); let o = iter.next().unwrap().parse().unwrap(); (n, m, l, o) }