fn main() { let mut abcdm = String::new(); std::io::stdin().read_line(&mut abcdm).ok(); let abcdm: Vec = abcdm.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let a = abcdm[0]; let b = abcdm[1]; let c = abcdm[2]; let d = abcdm[3]; let m = abcdm[4]; let mut result = 0usize; for i in a..=b { for j in c..=d { result = result.max((i+j)%m); } } println!("{}", result); }