#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef unsigned long long ull;

ull inf = 3ull<<62;
int p[2000],pc;
ull ans ;
ull mul(ull x,ull y){
	if(y<=inf/x)return x*y;
	return inf;
}
void cmin(ull& x,ull y){if(x>y)x=y;}
map<ull,ull> ::iterator it,ff;
void gao(map<ull,ull>& a,ull x,ull y){
	map<ull,ull> b;
	b[x]=y;
	b.insert(a.begin(),a.end());
	for(it=a.begin();it!=a.end();++it){
		ull g = __gcd(it->first , x);
		ull p =mul(x/g,it->first/ g) , q =mul(mul(y,it->second),g);
		if(mul(p,q)<ans){
			ff = b.find(p);
			if(ff==b.end())b[p] = q;
			else cmin(ff->second,q);
		}
		if(p==1)cmin(ans,q);
	}
	a.swap(b);
}
int main(){
	for(int i=2;i<=5000;++i,++pc){
		p[pc]=i;
		for(int j=2;j*j<=i;++j)if(i%j==0){
			--pc;break;
		}
	}
	for(int a,b;cin >> a >> b;){
		int r =1;
		for(r=1;r*r<=b;++r)if(r*r>=a)break;
		if(r*r<=b && r*r>=a){
			cout << r << endl;
			continue;
		}
		int n = 0;
		ull x[200],y[200],z[200];
		int q=0;
		for(;p[q] * p[q]<=b;++q);
		for(int i=a;i<=b;++i,++n){
			z[n]= i;
			y[n] = x[n]= 1;
			for(int j=0;j<q;++j)
				while(z[n]%p[j]==0){
					z[n]/=p[j];
					if(z[n]%p[j] ==0){
						z[n]/=p[j];y[n]*=p[j];
					}else x[n]*=p[j];
				}
		}
		for(int i=0;i<n;++i)if(z[i]>1)
		if(i+a+z[i]<=b){
			ull g = __gcd(x[i],x[i+z[i]]);
			y[i] *= g*y[i+z[i]] * z[i];
			x[i] = x[i]/g * (x[i+z[i]]/g);
		}else{ y[i]=0;}
		int m=n;n=0;
		for(int i=0;i<m;++i)if(y[i]>0){
//cout <<i+a<< "---"<< x[i] << ": " << y[i] << endl;
			x[n]=x[i];y[n++]=y[i];	
		}
		map<ull,ull> f,g;
		m = n/2;
		ans = inf;
		for(int i=0;i<m;++i)gao(f,x[i],y[i]);
		for(int i=m;i<n;++i)gao(g,x[i],y[i]);
		for(it=f.begin();it!=f.end();++it)
			if(g.count(it->first))
				cmin(ans, mul(it->first,mul(it->second,g[it->first])));
		if(ans<(1ull<<63)) cout << ans << endl;else cout <<"none\n";
	}
}
