using System;

public class Program
{

    public static void Main()
    {
        ulong n, pos = 1, x = 0, y = 0, c = 0, d = 0;
        string[] stavke;
        uint resenje = 0;
        n = ulong.Parse(Console.ReadLine());
        ulong[] a = new ulong[n];
        ulong[] b = new ulong[n];
        ulong[] a1 = new ulong[n];
        ulong[] b1 = new ulong[n];
        for (ulong i = 0; i < n; i++)
        {
            stavke = (Console.ReadLine()).Split(' ');
            a[i] = ulong.Parse(stavke[0]);
            b[i] = ulong.Parse(stavke[1]);
        }
        ulong j = 0;
        for (ulong z = 0; z < n; z++)
        {
            while (resenje == 0)
            {
                x = a[j];
                y = b[j];
                if (x % pos == 0) c = pos;
                else c = 0;
                d = c ^ y;
                if (c * d == x)
                {
                    resenje = 1;
                    break;
                }
                pos += 2;
                if (pos >= x) break;
            }
            if (resenje == 1)
            {
                a1[z] = c;
                b1[z] = d;
            }
            else
            {
                a1[z] = 0;
            }
            resenje = 0;
            j++;
        }
        for (ulong i = 0; i < n; i++)
        {
            if (a1[i] != 0)
                Console.WriteLine(a1[i] + " " + b1[i]);
            else
                Console.WriteLine("-1");
        }
    }
}