#include <iostream>
#include <math.h>
#include <stdbool.h>
#include <bits/stdc++.h>

using namespace std;

void delioci(long int niz[], long int a)
{
    long int i, o = 0;
    for(i =1; i <= sqrt(a); i++)
    {
        if(a % i == 0)
        {
            if(a / i == i)
            {
                niz[o] = i;
                o++;
            }

            else
            {
                niz[o] = i;
                o++;
                niz[o] = a / i;
                o++;
            }
        }
    }
}

int main()
{
    long long c;
    int t, s = 2, brojac = 0, f = 0;
    cin >> t;
    long long matrix[t][s], y, x, z;
    long int i, o;

    for(i = 0; i < t; i++)
    {
        for(o = 0; o < s; o++)
        {
            cin >> matrix[i][o];
        }
    }

    brojac = 0;
    do
    {
        f = 0;
        y = matrix[brojac][0];
        x = matrix[brojac][1];

        for(i =1; i <= sqrt(y); i++)
        {
            if(y % i == 0)
            {
                if(y / i == i)
                {
                    z = i;
                    if((z ^ (y / z)) == x)
                    {
                        cout << z << " " << y / z;
                        brojac++;
                        f = 1;
                        break;
                    }
                }


                else
                {
                    z = i;
                    if((z ^ (y / z)) == x)
                    {
                        cout << z << " " << y / z;
                        brojac++;
                        f = 1;
                        break;
                    }

                    if(z == -1)
                    {
                        cout << "-1";
                        brojac++;
                        f = 1;
                        break;
                    }


                    z = y / i;
                    if((z ^ (y / z)) == x)
                    {
                        cout << z << " " << y / z;
                        brojac++;
                        f = 1;
                        break;
                    }

                    if(z == -1)
                    {
                        cout << "-1";
                        brojac++;
                        f = 1;
                        break;
                    }
                }
            }
        }

        if(f == 1 && brojac != t)
        {
            cout << endl;
            continue;
        }

        if(f == 1)
        {
            continue;
        }
        brojac++;
        cout << "-1";
    }
    while(brojac != t);

    return 0;
}