#include <iostream>
#include <bitset>
using namespace std;
void nadjibit(int a[],int b[],int L,int R,int *Broj)
{
    int i,j;
    bitset<32>aa[100],bb[100];
    aa[L]=bitset<32>(a[L]);
    for(i=L+1;i<=R;i++)
    {
        aa[i]=bitset<32>(a[i]);
        aa[i]=aa[i-1]^aa[i];
    }
    bb[L]=bitset<32>(b[L]);
    for(i=L+1;i<=R;i++)
    {
        bb[i]=bitset<32>(b[i]);
        bb[i]=bb[i-1]&bb[i];
    }
    *Broj =bitset<32>(aa[R]).to_ulong() * bitset<32>(bb[R]).to_ulong();
}
int main()
{
    int n,a[2000],b[2000],L=0,R=0,Max=0,i,j,broj;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(i=0;i<n;i++)
    {
        cin>>b[i];
    }
    for(R=0;R<n;R++)
    {
        for(L=0;L<=R;L++)
        {
            nadjibit(a,b,L,R,&broj);
            if(broj>Max)
            {
                Max=broj;
            }
        }
    }
    cout<<Max;
    return 0;
}