#include #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(x) (x).begin(),(x).end() using namespace std; using ll = long long; template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; } const ll INF = 1ll << 60; const int INF32 = 1 << 30, dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 }; int main(){ ll A, B;cin >> A >> B; //A+BとA*Bの最大公約数 //A = 1000000000000000000; //B= 1000000000000000000; ll ab = __gcd(A, B); ll alest = A / ab; ll blest = B / ab; ll last = __gcd(alest + blest, ab); cout << ab * last << endl; return 0; }