#include<iostream>usingnamespace std;longmaxYueshu(long m,long n){if(m < n){long t = m;
m = n;
n = t;}long r = m % n;while(r){
m = n;
n = r;
r = m % n;}return n;}intmain(){long m, n;
cin >> m >> n;long ret =maxYueshu(m, n);
cout << ret << endl;}
//最小公倍数
#include<iostream>usingnamespace std;intminPub(int m,int n){int m1 = m, n1 = n;if(m < n){int t = m;
m = n;
n = t;}int r = m1 % n1;while(r){
m1 = n1;
n1 = r;
r = m1 % n1;}return(m * n)/ n1;}intmain(){int m, n;
cin >> m >> n;int ret =minPub(m, n);
cout << ret << endl;}