use std::{
io::{Write, stdin, stdout},
str::FromStr,
};
pub fn input_<T>(msg: &str) -> T
where
T: FromStr,
<T as FromStr>::Err: std::fmt::Debug,
{
print!("{}", msg);
stdout().flush().unwrap();
let mut s = String::new();
stdin().read_line(&mut s).unwrap();
let final_result: T = s.trim().parse().unwrap();
final_result
}