#include <stdio.h>
#include <math.h>

int main()
{
	long mat[50][50];
	long i,j,y;
	long k,pom,broj;
	int T;
	
	scanf("%d",&T);
	
	long a[T][100],duzine[T];
	
	for(i=0; i<T; i++)
	{
		for(j=0; j<2; j++)
			scanf("%ld",&mat[i][j]);
	}
	
	for(i=0; i<T; i++)
	{
		pom=mat[i][0];
		duzine[i]=0;
		k=2;
		
		a[i][duzine[i]++]=1;
		
		while(pom>1)
		{
			if(pom%k==0)
			{
				a[i][duzine[i]++]=k;
				pom/=k;
				k=2;	
			}
			else
				k++;
		}
		
		broj=floor(sqrt(mat[i][0]));
		
		for(j=1; j<=broj; j++)
		{
			if(mat[i][0]%j == 0)
			{
				y=mat[i][0]/j;
				
				if((y^j)==mat[i][1])
				{
					printf("%ld %ld \n",j,y);
					break;
				}
			}
		}
		
		if(j>broj)
		{
			printf("-1\n");
		}
	}
}