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

using namespace std;
int main()
{
    vector<long long> vx,vy;
    unsigned long long a,b;
    unsigned long long int t,i;
    scanf("%lld",&t);
    for(i=0;i<t;i++)
    {
        vx.push_back(-1);
        vy.push_back(-1);
    }
    for(i=0;i<t;i++)
    {
        scanf("%lld%lld",&a,&b);
        for(unsigned long long j=1;j<=sqrt(a);j++)
        {
            if(a%j==0)
            {
                if((j^(a/j))==b)
                {
                    vx[i]=j;
                    vy[i]=a/j;
                }
            }
        }
    }
    for(i=0;i<t;i++)
    {
        if(vx[i]==-1)
        {
            printf("-1");
            
        }
        else
        {
            printf("%lld %lld\n",vx[i],vy[i]);
        }
    }
}