import Control.Applicative ((<$>)) main :: IO () main = do solve <$> map read .words <$> getLine >>= putStrLn solve :: [Int] -> String solve [a1, a2, a3] | kadomatsu a1 a2 a3 = "INF" | a1 == a2 || a2 == a3 || a3 == a1 = "0" | otherwise = show $ loop (maximum [a1, a2, a3]) 0 where loop p c | p == 0 = c | kadomatsu (a1 `mod` p) (a2 `mod` p) (a3 `mod` p) = loop (p - 1) (c + 1) | otherwise = loop (p - 1) c kadomatsu :: Int -> Int -> Int -> Bool kadomatsu x y z = x /= z && (x < y && y > z || x > y && y < z)