use std::io::{self, Read as _}; fn main() { let mut input = "".to_owned(); io::stdin().read_to_string(&mut input).unwrap(); let mut input = input.split_ascii_whitespace(); macro_rules! read(($ty:tt) => (input.next().unwrap().parse::<$ty>().unwrap())); let mut n = read!(u64); let mut facts = vec![]; for k in 2..=10000 { let mut exp = 0; while n % k == 0 { n /= k; exp += 1; } if exp > 0 { facts.push((k, exp)); } } let (mut s, mut t) = (0, 0); for (_, exp) in facts { if exp == 1 { s += 1; } else { t += 1; } } let ans = if t == 0 { s % 2 == 1 } else { t % 2 == 1 }; println!("{}", if ans { "Alice" } else { "Bob" }); }