#include using namespace std; const int nmax=1e6+42; int n; int wanted[nmax]; pair inp[nmax]; pair mem[nmax]; void sub(long long &p,long long &q) { long long g=__gcd(p,q); p=p/g; q=q/g; } void solve() { scanf("%i",&n); for(int i=1;i<=n;i++)scanf("%i",&wanted[i]); for(int i=1;i<=n;i++)scanf("%lld%lld",&inp[i].first,&inp[i].second); if(n==1) { printf("%lld %lld\n",1LL*inp[1].second,1LL*inp[1].first*inp[1].second); return; } long long dvd=0; for(int i=1;i<=n;i++) { long long u=1LL*wanted[1]*inp[i].second; long long v=1LL*wanted[i]*inp[1].second; long long g=__gcd(u,v); u=u/g; v=v/g; //cout< "<inp[1].first||v>inp[i].first) { printf("-1\n"); return; } mem[i]={u,v}; if(dvd)dvd=dvd*u/__gcd(dvd,u); else dvd=u; if(dvd>inp[1].first) { printf("-1\n"); return; } } //cout<<"dvd= "< "<