#include <iostream>
#include <math.h>
#include <vector>
#define llu long long unsigned
using namespace std;

void factors(llu n,vector<llu> *vek)
{
    llu d=sqrt(n);
    for(llu i=1;i<=d;i++)
    {
        if(n%i==0)
            (*vek).push_back(i);
    }
}
int main() {
    int T;
    cin>>T;
    while(T--){
        llu a,b;
        cin>>a>>b;
        int check=0;
        vector<llu> vek;
        factors(a,&vek);
        
        while(!vek.empty()&& check!=1)
        {
            llu p=vek.back();
            vek.pop_back();
            llu x=a/p;
            x= p ^ x;
            if(b==x)
            {
                cout<<p<<" "<<a/p<<endl;check=1;
            }
        }
        if(check==0)
            cout<<-1<<endl;
    }
    return 0;
}