Problem P: 数学游戏

Memory Limit:256 MB Time Limit:3.000 S
Judge Style:Text Compare Creator:
Submit:87 Solved:5

Description

Kri 喜欢玩数字游戏。
一天,他在草稿纸上写下了t 对正整数 (x,y),并对于每一对正整数计算出了z=x*y*gcd(x,y)。
可是调皮的 Zay 找到了 Kri 的草稿纸,并把每一组的y都擦除了,还可能改动了一些z。
现在 Kri 想请你帮忙还原每一组的y,具体地,对于每一组中的x和 y  ,你需要输出最小的正整数y, 使得z=x*y*gcd(x,y)。如果这样的y不存在,也就是 Zay 一定改动了z,那么请输出-1。
注:gcd(x,y) 表示x和y的最大公约数,也就是最大的正整数d ,满足d既是x的约数,又是y的约数。

Input

第一行一个整数t ,表示有t 对正整数x和z。
接下来t行,每行两个正整数x和z,含义见题目描述。

Output

对于每对数字输出一行,如果不存在满足条件的正整数y,请输出-1,否则输出满足条件的最小正整数y。

Sample Input Copy

1
10 240

Sample Output Copy

12

HINT

样例1解释:
x*y*gcd(x,y)=10*12*gcd(10,12)=240
样例2输入
3
5 30
4 8
11 11
样例2输出
6
-1
1
数据范围
对于20%的数据,t,x,z<=10^3。
对于40%的数据,t<=10^3,x<=10^6,z<=10^9。
对于30%的数据,t<=10^4。
对于另20%的数据,x<=10^6。
对于100%的数据,1<=t<=5*10^5,1<=x<=10^9,1<=z<=10^63。