#include<bits/stdc++.h>
using namespace std;

int x,y;
bool c[40000005];
long long a,b,aux,i,j;

inline long long cmmdc(long long a,long long b) { return !b ? a:cmmdc(b,a%b); }

int main()
{
  ios_base::sync_with_stdio(0); cin.tie(0);

  cin>>a>>b;

  if(cmmdc(a,b)==1) return cout<<b-a+1<<'\n',0;

  if(a==b) return cout<<"-1\n",0;

  if(a<2) return cout<<b-a+1<<'\n',0;

  for(x=2;x<=4e7;++x)
  if(!c[x]) for(y=2*x;y<=4e7;y+=x) c[y]=1;

  for(i=2,aux=a,y=0;i*i<=aux;++i)
  {
    if(c[i]) continue;
    if(aux%i) { y=i; break;}

    while(aux%i==0) aux/=i;
  }

  if(!y && aux>1) i=aux+1;

  for(j=4e7,aux=1;j>=i;--j)
  if(!c[j]) 
  { 
    y=j;
    if(aux*y<=b) aux*=y;
    for(;aux*y<=b;) aux*=y;
  }

  if(aux>=a && aux<=b) return cout<<aux-a+1<<'\n',0;

  cout<<"2\n";

 return 0;
}