count :: Integral a => a -> a -> a count m n = count' 0 (div m g) $ div n g where g = gcd m n count' c m' n' | m' == n' = c | m' > n' = let l = flip div n' $ m' - 1 in count' (c + l) (m' - l * n') n' | otherwise = count' (c + 1) n' m' main = print . (\(m : n : _) -> count m n) . map read . words =<< getLine