import Control.Arrow order n d = n `div` gcd n d pyon (n, d) = (order n d) - 1 readInt :: String -> Int readInt = read mapTuple f = f *** f readInts = mapTuple readInt main = getLine >>= print . pyon . readInts . break (== ' ')