fn r(n: u64) -> Option { if n < 1 { return Some("".to_owned()); } if n % 3 < 1 { if let Some(s) = r(n / 3 - 1) { return Some(s + "B"); } } if n % 2 < 1 { if let Some(s) = r(n / 2 - 1) { return Some(s + "A"); } } None } fn main() { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let n: u64 = s.trim().parse().unwrap(); println!("{}", r(n - 1).unwrap_or("".to_owned())) }