import Control.Applicative ((<$>)) main :: IO () main = solve <$> map read <$> words <$> getLine >>= print solve :: [Int] -> Int solve [m, n] = let g = gcd m n in f 0 (m `div` g) (n `div` g) where f c m n | n == 1 = c + m - 1 | m > n = let (q, r) = divMod m n in f (c+q) r n | otherwise = f (c+1) n m