pub fn flush() {
use std::io::Write;
std::io::stdout().flush().unwrap();
}
pub fn flushln() {
println!();
}
#[macro_export]
macro_rules! printfl {
() => {{
$crate::flush();
}};
($($arg:tt)*) => {{
print!($($arg)*);
$crate::flush();
}};
}
pub fn get_line() -> String {
let mut s = String::new();
std::io::stdin().read_line(&mut s).unwrap();
s.trim().to_string()
}
#[macro_export]
macro_rules! msg_line {
() => {{
$crate::get_line()
}};
($($arg:tt)*) => {{
$crate::printfl!($($arg)*);
$crate::get_line()
}};
}