fn combs(n: u128, r: u128) -> u128 { let mut result: u128 = 1u128; for i in 0..r { result *= n - i; } for i in 1..=r { result /= i; } result } fn main() { let mut x = String::new(); std::io::stdin().read_line(&mut x).ok(); let x: u128 = x.trim().parse().unwrap(); if x > 31 { println!("0 0"); return; } let combs = combs(31, x); let sums: u128 = (0..31) .map(|i| 2u128.pow(i as u32) * combs * x / 31) .sum(); println!("{} {}", combs, sums); }