pub mod input{
pub fn inputinti32()->i32{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: i32 = a.trim().parse().unwrap();
a
}
pub fn inputinti8()->i8{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: i8 = a.trim().parse().unwrap();
a
}
pub fn inputinti64()->i64{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: i64 = a.trim().parse().unwrap();
a
}
pub fn inputintu8()->u8{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: u8 = a.trim().parse().unwrap();
a
}
pub fn inputintu32()->u32{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: u32 = a.trim().parse().unwrap();
a
}
pub fn inputintu64()->u64{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: u64 = a.trim().parse().unwrap();
a
}
pub fn inputfloatf32()->f32{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: f32 = a.trim().parse().unwrap();
a
}
pub fn inputfloatf64()->f64{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
let a: f64 = a.trim().parse().unwrap();
a
}
pub fn inputstring()->String{ let mut a = String::new();
std::io::stdin().read_line(&mut a).expect("unvalid input");
a
}
}