#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <iomanip>
#include <functional>
#include <bitset>
#include <limits>
#include <cstdio>
#include <cmath>
#include <cassert>
#include <random>

#ifdef DEBUG
#include "library/Utility/debug.cpp"
#else
#define debug(...)
#endif

#define rep(i,n) for(int i=0;i<(n);++i)
#define EL '\n'
#define print(i) std::cout << (i) << '\n'
#define all(v) (v).begin(), (v).end()
using lnt = long long;
struct FIO{FIO(){std::cin.tie(0);std::cout.tie(0);std::ios_base::sync_with_stdio(0);std::cout<<std::fixed<<std::setprecision(15);}}fIO;
/*-*/

int main() {
	int t;
	std::cin >> t;
	lnt N=5000005;
	std::vector<int> prime(N,true);
	prime[0]=0; prime[1]=0;
	for(lnt i=2;i<N;i++) {
		if(!prime[i]) continue;
		for(lnt j=2;j*i<N;j++) {
			prime[i*j]=false;
		}
	}
	rep(tt,t) {
		lnt a,p;
		std::cin >> a >> p;
		if(!prime[p]) print(-1);
		else if(a%p==0) print(0);
		else print(1);
	}
}