RT
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
__int128 j,k,m,n,o,p,a[510],b[510],anslcm=1,ans=1;
__int128 i;
inline __int128 read()
{
__int128 x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
inline void print(__int128 x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
print(x/10);
putchar(x%10+'0');
}
__int128 ksc(__int128 a,__int128 b,__int128 mo)
{
__int128 sum=0;
while(b>0)
{
if(b&1) sum=(sum%mo+a%mo)%mo;
a=(a%mo+a%mo)%mo;
b>>=1;
}
return sum;
}
void exgcd(__int128 a,__int128 b,__int128 &x1,__int128 &y1)
{
if(b!=0)
{
exgcd(b,a%b,x1,y1);
__int128 x2=x1;
x1=y1;
y1=x2-a/b*y1;
}
else {x1=1;y1=0;}
}
__int128 gcd1(__int128 a,__int128 b)
{
if(b!=0)
return gcd1(b,a%b);
return a;
}
__int128 lcm(__int128 a,__int128 b)
{
__int128 klk,lkl;
__int128 gcd=gcd1(a,b);
return (a/gcd*b);
}
__int128 excrt()
{
__int128 x,y;
__int128 mm=b[1],sum=a[1];
for(i=2;i<=n;i++)
{
__int128 aa=mm,bb=b[i],cc=(a[i]-sum%bb+bb)%bb,gcd=gcd1(aa,bb);
exgcd(aa,bb,x,y);
if(cc%gcd) return -1;
x=ksc(x,cc/gcd,bb);
sum+=x*mm;
mm=lcm(mm,bb);
sum=(sum%mm+mm)%mm;
}
return sum;
}
int main()
{
//std::ios::sync_with_stdio(false);
n=read();
for(i=1;i<=n;i++)a[i]=read();
for(i=1;i<=n;i++)b[i]=read();
ans=excrt();
print(ans);
return 0;
}