#include using namespace std; using ll=long long; #define rep2(i, a, n) for(int i = (a); i < (n); i++) #define rep(i, n) rep2(i,0,n) void in(){} template void in(Head&& head,Tail&&... tail){cin>>head;in(forward(tail)...);} void out(){cout< void out(Head&& head,Tail&&... tail){cout<(tail)...);} int main(){ cin.tie(nullptr);ios_base::sync_with_stdio(false); int t;cin>>t; int n=5000000; //素数の個数 vector prime(n); //素数であるか vector is_prime(n+1,true); //bool is_prime[n+1];rep(i,n+1)is_prime[i]=true; is_prime[0]=is_prime[1]=false; int hoge=0; rep2(i,2,n+1){ if(is_prime[i]){ prime[hoge++]=i; for(int j=2*i;j<=n;j+=i)is_prime[j]=false; } } ll a,p; rep(i,t){ in(a,p); //out(a,p); //そうでなければ − 1 if(!is_prime[p]){ cout<<-1<