import Control.Applicative import Control.Monad import Data.List import Data.Bits import qualified Data.IntMap as IM primeVector n = if n'>1 then IM.insertWith (+) n 1 m' else m' where (n',m') = foldl' go (n, IM.empty) $ takeWhile (\x -> x^2 <= n) [2..] go (k,m) i | k `mod` i == 0 = let (q,t) = divAll k i in (q, IM.insertWith (+) i t m) | otherwise = (k,m) divAll a b | a `mod` b == 0 = let (q,t) = divAll (a`div`b) b in (q,t+1) | otherwise = (a,0) solve n = if solve' n == 0 then "Bob" else "Alice" solve' n = foldl' xor (0 :: Int) $ IM.elems $ primeVector n main = do n <- (read :: String -> Int) <$> getLine putStrLn $ solve n