#include <bits/stdc++.h>

using namespace std;

int duzinaB(int x){
    int i=0;
    do{
        x/=2;
        i++;
    }while(x!=0);
    return i;
}

vector<bool> uBinarno(int dek,short int m){
    vector<bool> bin;
    for(int i=0;i<m;i++){
        bin.insert(bin.begin(),dek%2);
        dek/=2;
    }
    return bin;
}

int uDekarno(vector<bool> bin, short int m){
    int dek=0;
    for(int i=0;i<m;i++)
        if(bin[i])
            dek+=pow(2,m-i-1);
    return dek;
}

vector<bool> eksDis(vector<vector<bool>> a,int m){
    int n=a.size();
    for(int i=1;i<n;i++)
        for(int j=0;j<m;j++)
            a[0][j]=(a[0][j]!=a[i][j]);
    return a[0];
}

vector<bool> kon(vector<vector<bool>> a,int m){
    int n=a.size();
    for(int i=1;i<n;i++)
        for(int j=0;j<m;j++)
            a[m-1][j]=(a[m-1][j])&&(a[i][j]);
    return a[0];
}

int main()
{
    short int i,j,n,ma,mb;
    int br;
    vector<int> a,b;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>br;
        a.push_back(br);
    }
    ma=(int)duzinaB(*max_element(a.begin(),a.end()));
    for(i=0;i<n;i++){
        cin>>br;
        b.push_back(br);
    }
    mb=(int)duzinaB(*max_element(b.begin(),b.end()));
    vector<vector<bool>> bin;
    for(i=0;i<n;i++)
        bin.push_back(uBinarno(a[i],n));
    vector<int> res;
    for(i=0;i<n-1;i++){
        for(j=i+1;j<n;j++){
            vector<vector<bool>> pom(bin.begin()+i,bin.begin()+j+1);
            res.push_back(uDekarno(eksDis(pom,ma),ma));
        }
    }
    for(i=0;i<n;i++)
        bin.push_back(uBinarno(a[i],n));
    for(i=0;i<n-1;i++){
        for(j=i+1;j<n;j++){
            vector<vector<bool>> pom(bin.begin()+i,bin.begin()+j+1);
            res[i]*=(uDekarno(kon(pom,mb),mb));
        }
    }
    cout<<*(max_element(res.begin(),res.end()));
    return 0;
}