#include using namespace std; typedef long long ll; ll gcd(ll a,ll b){ return b == 0 ? a : gcd(b,a%b); } ll lcm(ll a,ll b){ return a * b / gcd(a, b); } ll ksm(ll x,ll n,ll mod){ ll res = 1; x = x % mod; while(n > 0){ if(n & 1) res = res * x % mod; x = x * x % mod; n >>= 1; } return res; } ll fac(int n){ ll f = 1; for(int i=n;i>0;i--) f *= i; return f; } ll C(int n, int m){ return fac(n) / (fac(n - m) * fac(m)); } int main(){ int T; scanf("%d", &T); ll a, b, c; ll minn, maxx; while(T--){ minn = -1; maxx = -1; scanf("%lld %lld", &a, &b); if(a == b){ if(a == 1){ printf("-1 -1\n"); }else{ printf("2 %lld\n", b); } continue; } if(a > b) swap(a, b); if(b - a == 1){ printf("-1 -1\n"); continue; } maxx = b - a; minn = maxx; for(int i=2;i*i<=maxx + 50;i++){ if((a % i) == (b % i)){ minn = i; break; } } printf("%lld %lld\n", minn, maxx); } /*ll a, b; while(1){ scanf("%lld %lld", &a, &b); for(int i=2;i<=b;i++){ if((a % i) == (b % i)){ cout<