#include <bits/stdc++.h>

using namespace std;

typedef pair<int,int> ii;

#define X first
#define Y second


const long long inf=1e18;
const int N=55;
const int maxv=50;
int n;
ii a[N];

long long h[N];


bool test(long long mask){
        for(int i=0;i<=maxv;i++){
                h[i]=1LL<<i;
                for(int j=0;j<maxv;j++) if (mask&(1LL<<j))
                        h[i]|=h[i%(j+1)];
        }
        for(int i=1;i<=n;i++) if (!(h[a[i].X]&(1LL<<a[i].Y))) return 0;
        return 1;
}
long long solve(){
        long long ans=0;
        for(int i=maxv-1;i>=0;i--)
                if (!test(ans+(1LL<<i)-1)) ans+=1LL<<i; 
        if (ans==(1LL<<maxv)-1) return -1;
        return ans*2;
}
int main(){
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i].X;
        for(int i=1;i<=n;i++) cin>>a[i].Y;
        cout<<solve();
}
