import Control.Applicative import Data.List import Data.Bits mex :: [Int] -> Int mex list = mex_sub 0 $ sort list where mex_sub n [] = n mex_sub n (x:xs) | n == x = mex_sub (n+1) xs | otherwise = n grundy :: Int -> Int grundy 0 = 0 grundy 1 = 0 grundy 2 = 1 grundy n = mex $ [foldl1 xor [dp!!(j`div`2)|j<-[n,n+1]], foldl1 xor [dp!!(j`div`3)|j<-[n..n+2]]] dp :: [Int] dp = [grundy i | i <- [0..]] main = do l <- (read::String->Int) <$> getLine putStrLn $ if dp!!l /= 0 then "A" else "B"