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

int T,nadjeno=0;
long long int A[10000],B[10000],C[10000][2];

void form()
{
    int i,j;
    for(i=0;i<T;i++)
    {
        for(j=3;j<=sqrt(A[i])&&!nadjeno;j+=2)
        {
            if(A[i]%j==0&&(j^(A[i]/j))==B[i])
            {
                C[i][0]=j;
                C[i][1]=A[i]/j;
                nadjeno=1;
            }
        }
        nadjeno=0;
    }
}

int main()
{
    int i,j;
    scanf("%d",&T);
    for(i=0;i<T;i++)
        scanf("%lld%lld",&A[i],&B[i]);
    form();
    for(i=0;i<T;i++)
    {
        for(j=0;j<2;j++)
        {
            if(C[i][j]==0)
            {
                if(j==0)
                    printf("-1 ");
            }
            else
                printf("%d ",C[i][j]);
        }
        printf("\n");
    }
    return 0;
}