#[macro_export]
macro_rules! cin {
() => {{
let mut input: String = String::new();
let _ = std::io::stdin().read_line(&mut input);
input
}};
}
#[macro_export]
macro_rules! cin_parse {
($input: expr, Vec<$type: ty>) => {{
let mut res: Vec<$type> = Vec::<$type>::new();
for token in $input.split_whitespace() {
if let Ok(num) = token.parse::<$type>() {
res.push(num);
}
}
res
}};
($input: expr, $type: ty) => {{
let mut res: $type = Default::default();
if let Ok(parse_res) = $input.parse::<$type>() {
res = parse_res;
}
res
}};
}