#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string> 
using namespace std;

int main(){
	int t,i,jedan,k;
	unsigned long long int a,b,c,j,kor;
	int prvi[10000];
	int drugi[10000];
	scanf("%d",&t);
	jedan=1;
	
	
	
	for(i=1;i<=t;i++){
		scanf("%llu %llu",&a,&b);
		
		prvi[i]=0;
		drugi[i]=0;
		
	 if((jedan^a)==b){
			prvi[i]=jedan;
			drugi[i]=a;
		}else{
			
		kor=sqrt(a);
		unsigned long long int(kor);	
			
			for(j=1;j<kor;j++){
				
				
				if((a%j) == 0){
					c=a/j;
					
					
					if((j^c)== b){
						prvi[i]=j;
						drugi[i]=c;
						
					}
					
				}
						
						
					}
				}
				
			if(prvi[i]=0 && drugi[i]=0){
				to_string(drugi[i]);
				prvi[i]=-1;
				
			}	
				
			
		
		
	}
	
	
	for (k=1;k<=t;k++){
		printf("%llu %llu",prvi[k],drugi[k]);
		cout<<endl;
		
	}
}