#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;
}