#include<stdio.h>
//编写最大公约数GCD函数
int Monesy(int a,int b)
/*********Begin*********/
{
long long int maxab = 0;
long long int max = 0;
long long int min = 0;
if(a>0&&b>0)
{
if(a>b)
{
maxab = a;
}
if(a<b)
{
maxab = b;
}
if(a==b)
{
maxab = a;
}
long long int i = 0;
for(i=1;i<=maxab;i++)
{
if(a%i==0&&b%i==0)
{
max = i;
}
}
printf("%ld",max);
/*********End**********/
//编写最小公倍数LCM函数
/*********Begin*********/
long long int j = 0;
//for(j=1;j<1000000000000;j++)
//{
// if(j%a==0&&j%b==0&&j!=0)
// {
// min = j;
// break;
// }
//}
long long int z = 0;
long long int c = 0;
long long int m = a;
long long int n = b;
while(b!=0)
{
c = a % b;
a = b;
b = c;
}
printf(" %ld\n",m*n/a);
}
else if(a<0||b<0)
{
printf("Input Error");
}
/*********End**********/
}
int main(void)
{
/*********Begin*********/
long long int a = 0;
long long int b = 0;
scanf("%ld %ld",&a,&b);
Monesy(a,b);
/*********End**********/
return 0;
}