import Data.Char base :: [Integer] -> Integer -> Maybe Integer base n b = fmap sum $ sequence $ zipWith fmap (map (*) (iterate (* b) 1)) r where r = map (\x -> if x >= b then Nothing else Just x) (reverse n) minM' :: Maybe Integer -> Maybe Integer -> Maybe Integer minM' a Nothing = a minM' Nothing b = b minM' a b = fmap minimum (sequence [a, b]) minM :: [Maybe Integer] -> Maybe Integer minM [] = Nothing minM (x:xs) = minM' x (minM xs) main = do getLine nums <- getContents >>= return . map (map (\c -> if isDigit c then ord c - 48 else ord c - 65 + 10)) . lines let Just m = minM [base (map fromIntegral n) (fromIntegral b) | n <- nums, b <- [2..36]] print $ m