#[macro_export]
macro_rules! input {
() => {{
let mut temp_input = String::new();
std::io::stdin()
.read_line(&mut temp_input)
.expect("Failed to read input");
temp_input.trim().to_string()
}};
($expression:expr) => {{
use std::io::Write;
print!("{}", $expression);
std::io::stdout().flush().unwrap();
input!()
}};
}