#include using namespace std; using LL = long long; const int mo = 1e9 + 7; const int maxn = 2e5 + 5; int main() { int T; scanf("%d", &T); while(T--) { int a, b; scanf("%d%d", &a, &b); if(b > a) { swap(a, b); } if(a == b && a != 1) { printf("2 %d\n", a); } else { int up = sqrt(a - b) + 1; int d = a - b; int low = a + 1, tup = -1; for(int i = 1; i <= up; i++) { if(d % i == 0) { if(i >= 2 && (a / i - b / i) * i == d) { low = min(low, i); tup = max(tup, i); } int c = d / i; if(c >= 2 && (a / c - b / c) * c == d) { low = min(low, c); tup = max(tup, c); } } } if(tup == -1) { printf("-1 -1\n"); } else { printf("%d %d\n", low, tup); } } } return 0; }