fn main() { let stdin = std::io::read_to_string(std::io::stdin()).unwrap(); let mut stdin = stdin.split_ascii_whitespace(); let a: u32 = stdin.next().unwrap().parse().unwrap(); let b: u32 = stdin.next().unwrap().parse().unwrap(); let c: u32 = stdin.next().unwrap().parse().unwrap(); let d: u32 = stdin.next().unwrap().parse().unwrap(); println!("{}", output(solve(a, b, c, d))); } fn solve(a: u32, b: u32, c: u32, d: u32) -> u32 { (a as u64 * b as u64 % d as u64 * c as u64 % d as u64) as u32 } fn output(ans: u32) -> u32 { ans }