import qualified Data.ByteString.Char8 as BS import qualified Data.List as DL solve :: Integral a => a -> a -> a -> a -> a solve a1 b1 a2 b2 = head $ DL.dropWhile (\x -> x `mod` b1 /= b2) [a2, a2 + a1 .. 3001] main :: IO () main = do [a1, b1, a2, b2] <- readInts print $ solve a1 b1 a2 b2 readInts :: IO [Int] readInts = DL.unfoldr (BS.readInt . BS.dropSpace) <$> BS.getLine