#python -m pdb a.py B=25*10**6 P=[] C=[0]*B for i in range(2,B): if C[i]<1: P+=[i];j=i*i while j0 if n<2:return 0 if n in Q:return 1 if any(n%p<1 for p in Q):return 0 for t in range(10):Q+=[random.randint(30,n-1)] u,v=n-1,0 while u&1<1:u>>=1;v+=1 for p in Q: m=pow(p,u,n) if m!=1: for e in range(v): if m==n-1:break m=m*m%n else:return 0 return 1 J=lambda:list(map(int,input().split())) L,R=J() for i in range( 1 , length - 2 ): a2 = P[i] * P[i]; if( a2 * P[i+1] * P[i+2] > R ): break; for j in range( i + 1 , length - 1 ): a2b = a2 * P[j] a2bc = a2b * P[j+1] if( a2bc > R ): break; a2bc = a2b * P[length - 1] if( a2bc < L ): c_min = ( ( L + a2b - 1 ) // a2b ) | 1 c_max = R // a2b; assert( c_min > P[length-1] ); for c in range( c_min , c_max + 1 , 2 ): if( MillerRabin( c , Q ) ): exit( print( a2b * c ) ); else: l,r=j,length-1 while l+1>1 if( a2b * P[m] < L ):l=m else:r=m a2bc = a2b * P[r]; if( L <= a2bc <= R ): exit( print( a2bc ) ); print( -1 );