#include #define N using namespace std; int a,b; inline void Rd(int &res){ char c;res=0; while(c=getchar(),c<48); do res=(res<<3)+(res<<1)+(c^48); while(c=getchar(),c>47); return; } int main(){ // freopen("data.txt","r",stdin); int T; Rd(T); while(T--){ Rd(a);Rd(b); if(a>b)swap(a,b); if(b-a==1){puts("-1 -1");continue;} if(b==a){ if(a==1)puts("-1 -1"); else printf("2 %d\n",a); continue; } int h=b-a; int ansmax=h,ansmin=h; for(int i=2,ed=sqrt(h);i<=ed;i++){ if(h%i==0){ ansmin=i;break; } } printf("%d %d\n",ansmin,ansmax); } return 0; }