fn lcm(a: u64, b: u64) -> u64 { let (mut g, mut r) = (a, b); while r != 0 { (g, r) = (r, g % r); } a / g * b } fn main() { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let n: Vec = s.split_whitespace().flat_map(str::parse).collect(); let (x, y) = (n[0] + n[1], n[2] + n[3]); let l = lcm(x, y); let (mut a, mut b, r) = (0, 0, n[4] % l); for i in 0..l { if i % x < n[0] && i % y < n[2] { a += 1; if i < r { b += 1; } } } println!("{}", n[4] / l * a + b) }