f :: Int -> Int -> Int f a b = f' $ divMod b a where f' :: (Int, Int) -> Int f' (a, b) | b == 0 = a | otherwise = a + 1 main :: IO () main = getNums >>= (\[a, b] -> return (f a b)) >>= print where getNums = map read . words <$> getLine :: IO [Int]