// Skyqwq #include #include #define pb push_back #define fi first #define se second #define mp make_pair using namespace std; typedef long long LL; template void chkMax(T &x, T y) { if (y > x) x = y; } template void chkMin(T &x, T y) { if (y < x) x = y; } template void inline read(T &x) { int f = 1; x = 0; char s = getchar(); while (s < '0' || s > '9') { if (s == '-') f = -1; s = getchar(); } while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar(); x *= f; } int mx = -2e9, mn = 2e9; int a, b; void inline chk(int x) { if (x <= 1 || x > max(a, b)) return; chkMin(mn, x); chkMax(mx, x); } int main() { int T; read(T); while (T--) { mx = -2e9, mn = 2e9; read(a), read(b); int n = abs(a - b); if (a == 1 && b == 1) { puts("-1 -1"); continue; } if (a == b) { printf("%d %d\n", 2, a); continue; } for (int i = 1; i * i <= n; i++) { if (n % i == 0) { chk(i); chk(n / i); } } if (mn == 2e9) puts("-1 -1"); else printf("%d %d\n", mn, mx); } return 0; }