#include <iostream>
#include <cstdio>
#include <cmath>
long long res(long long a, long long b) {
    for (int i=1; i<=sqrt(a); i=i+2) {
        if (a%i==0) {
            if (b==((a/i)^i)) {
                return i;
            }
        }
    }
    return -1;
}
int main() {
    long T;
    long long nums[10000][2];
    scanf("%ld\n",&T);
    for (int i=0; i<T; i++) {
        scanf("%lld %lld",&nums[i][0],&nums[i][1]);
    }
    long long temp=0;
    for (int k=0; k<T; k++) {
        temp=res(nums[k][0],nums[k][1]);
        if (temp<0) {
            printf("%d \n",-1);
        }
        else {
            printf("%lld %lld \n",temp,nums[k][0]/temp);
        }
    }
    return 0;
  }