/*搜索题*/
#include<iostream>
#include<algorithm>
using namespace std;
bool flag1=false,flag2=false;
void dfs(int a,int b,int p)
{
if(p>100)
{
if(b==1)
{
flag2=true;
if(a==1)
flag1=true;
}
return;
}
if(a%p==0) dfs(a/p,b,p+1);
if(b%p==0) dfs(a,b/p,p+1);
dfs(a,b,p+1);
}
int main()
{
int a=0,b=0;
while(cin>>a>>b)
{
if(a<b)
swap(a,b);
flag1=false;
flag2=false;
dfs(a,b,2);
if(!flag1&&flag2)
cout<<b<<endl;
else
cout<<a<<endl;
}
return 0;
}