# 好像这个方法不够好,特别慢貌似,看有没有优化的方法
# k=int(input())

while True:
    try:
#         for _ in range(k):
        a,b=map(int,input().split())
        def gys(a,b):
            if a<b:
                a,b=b,a
            if a%b==0:
                return b
            else:
                a=a%b 
                return gys(b,a)
    
        def gbs(a,b):
            return (a*b)//gys(a,b)
        print(gys(a,b)+gbs(a,b))
    except:
        break
        
        ```
       · 本质还是求 最小公倍数和最大公约数问题
       · 但求最小公倍数这些都是蕴含数***算技巧的,我之前自己写的暴力方法时间复杂度太高了
       · 九章算术和欧几里得的辗转相除法 需要记住
       · 辗转相除法,就是用两数的余数,然后再用小的再去取余,如果能整除,就返回被除数(就是最大公倍数),否则就一直变小取余
       · 最大公倍数 是两数乘积除以 两数最大公约数