#include using namespace std; typedef long long ll; const int M=1e5+5; int a,b,tes,m; int p[M],v[M]; void prework(){ int n=1e5; for(int i=2;i<=n;i++){ if(v[i]==0){v[i]=i,p[++m]=i;} for(int j=1;j<=m;j++){ if(p[j]>v[i]||p[j]>n/i)break; v[i*p[j]]=p[j]; } } } void solve(){ scanf("%d%d",&a,&b); if(a==1&&b==1){puts("-1 -1");return;} if(a==b){printf("%d %d\n",2,a);return;} a=abs(a-b); for(int i=1;i<=m;i++)if(a%p[i]==0){ printf("%d %d\n",p[i],a);return; } if(a>1)printf("%d %d\n",a,a); else puts("-1 -1"); } int main() { prework(); scanf("%d",&tes); while(tes--)solve(); return 0; }