import qualified Data.Char as C import qualified Data.List as L main :: IO () main = do n <- getLine let ns = map (toInteger . C.digitToInt) . L.nub $ n print $ if length ns == 1 then read n else proc (read n) $ createPattern ns proc :: Integer -> [(Integer, Integer)] -> Integer proc n ns = foldr gcd n ns' where ns' = map (\(a, b) -> 9 * (a - b)) ns createPattern :: [Integer] -> [(Integer, Integer)] createPattern ns = filter (\(x, y) -> x `elem` ns && y `elem` ns) pattern where pattern = [(x, y) | x <- [0..9], y <- [0..9], x > y]