#include #define fr(i,a,b) for(int i=(a),end_##i=(b);i<=end_##i;i++) #define fd(i,a,b) for(int i=(a),end_##i=(b);i>=end_##i;i--) #define i64 long long int read() { int r=0,t=1,c=getchar(); while(c<'0'||c>'9'){ t=c=='-'?-1:1; c=getchar(); } while(c>='0'&&c<='9'){ r=(r<<3)+(r<<1)+(c^48); c=getchar(); } return r*t; } int solve(int v){ if(v%2==0) return 2; for(int i=3;i*i<=v;i+=2) if(v%i==0) return i; return v; } int main() { fr(T,1,read()) { int a=read(),b=read(),d=std::abs(a-b); if(d==1||(a==1&&b==1)){ printf("-1 -1\n"); continue; } if(!d){ printf("2 %d\n",a); continue; } printf("%d %d\n",solve(d),d); } return 0; }