#include<stdio.h>
long zdgys(long a,long b)//定义一个求最大公约数的函数
{
    long x=a%b;
    return x==0?b:zdgys(b,x);//如果a%b等于0,则b就是最大公约数,否则让b替换a,让a%b替换b继续递归求
}
long zxgbs(long a,long b)//定义一个求最小公倍数的函数
{
    return (a/zdgys(a, b))*b;//注意要先除再乘,防止出现溢出的情况,相乘的情况最容易溢出
}
int main(void)
{
    long n,m;
    while((scanf("%lld %lld",&n,&m))!=EOF)
    {
        printf("%lld",zdgys(n,m)+zxgbs(n,m));
    }
    return 0;
}