#include using namespace std; #define MAX 210000 long long t, n, a[MAX], b[MAX], c[MAX], sum, tmp[MAX], st, gr, yt; int df(int a, int b) { if(a < b)swap(a, b); if(b == 0)return a; return df(a % b, b); } void solve() { scanf("%d",&n); for(int i = 0; i < n; i++)scanf("%d", &a[i]); for(int i = 0; i < n; i++)scanf("%d%d", &b[i], &c[i]); sum = 0; yt = a[0]; for(int i = 0; i < n; i++) { sum += a[i]; yt = df(yt, a[i]); } st = 1; for(int i = 0; i < n; i++) { tmp[i] =c[i] / df(a[i], c[i]); st = st * tmp[i] / df(st, tmp[i]); } for(int i = 0; i < n; i++)if(st > b[i]) { cout << "-1\n"; return ; } gr = b[0] / st; for(int i = 1; i < n; i++)gr = min(gr, b[i] / st); cout << st * sum / yt << " " << gr * st * sum / yt << endl; } int main() { freopen("alchemy.in", "r", stdin); freopen("alchemy.out", "w", stdout); cin >> t; for(int i = 1; i <= t; i++)solve(); return 0; } /* 3 3 3 5 8 18 2 12 5 16 6 3 2 4 6 1 1 1 2 1 3 2 3 5 1 5 1 3 */