fn r(n: u64) -> Option<String> {
	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())
}