fn true_main() { use std::io::{BufRead, BufWriter, Write}; let stdin = std::io::stdin(); let stdout = std::io::stdout(); let mut stdin = stdin.lock().lines(); let mut stdout = BufWriter::new(stdout.lock()); #[allow(unused_macros)] macro_rules! input { ($x: ident) => { $x = stdin.next().unwrap().unwrap().parse().unwrap(); }; ($x: ident: $t: ty) => { let $x: $t; $x = stdin.next().unwrap().unwrap().parse().unwrap(); }; ($($x: ident), +) => { let s = stdin.next().unwrap().unwrap(); let mut it = s.split_whitespace(); $($x = it.next().unwrap().parse().unwrap();)+ }; ($($x: ident: $t:ty), +) => { $(let $x: $t;)+ let s = stdin.next().unwrap().unwrap(); let mut it = s.split_whitespace(); $($x = it.next().unwrap().parse().unwrap();)+ }; } #[allow(unused_macros)] macro_rules! input_n { ($x: ident) => { $x = stdin.next().unwrap().unwrap().split_whitespace().map(|x| x.parse().unwrap()).collect(); }; ($x: ident: $t: ty) => { let $x: $t; $x = stdin.next().unwrap().unwrap().split_whitespace().map(|x| x.parse().unwrap()).collect(); }; } #[allow(unused_macros)] macro_rules! output { ($fmt: expr) => (write!(stdout, $fmt).unwrap()); ($fmt: expr, $($arg: tt)*) => (write!(stdout, $fmt, $($arg)*).unwrap()); } #[allow(unused_macros)] macro_rules! outputln { ($fmt: expr) => (writeln!(stdout, $fmt).unwrap()); ($fmt: expr, $($arg: tt)*) => (writeln!(stdout, $fmt, $($arg)*).unwrap()); } input!(a: i32, b: i32, s: String); let y: f64 = s[3..].parse().unwrap(); let x = (a + 48) * 60 + b; let x = x + ((y * 60.0 + 1e-8) as i32) - 9 * 60; outputln!("{:02}:{:02}", x / 60 % 24, x % 60); } fn main() { let builder = std::thread::Builder::new().stack_size(64 * 1024 * 1024); let handler = builder.spawn(true_main).unwrap(); handler.join().unwrap(); }