import Data.Ratio main = getLine >>= print . solve . (\[m, n] -> m % n) . map read . words solve :: Rational -> Integer solve = err . solve' where err (Just x) = x err _ = -1 solve' :: Rational -> Maybe Integer solve' x | xa == 0 || xb == 0 = Nothing | x == (1 % 1) = Just 0 | x > (1 % 1) && xb == 1 = Just $ xa - 1 | x > (1 % 1) = solve' (mod xa xb % xb) >>= return . (+ div xa xb) | otherwise = solve' (xb % xa) >>= return . (+ 1) where xa = numerator x xb = denominator x