#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long int lint;



void solve(){
    int n;
    cin >> n;
    vector<int> a(n);
    vector<int> b(n);
    for(int i = 0; i < n; i++){
        cin >> a[i];
    }
    for(int i = 0; i < n; i++){
        cin >> b[i];
    }
    if(n <= 2000){
        int maxi = 0;
        int desno = 0;
        int levo = 0;
        for(int l = 0; l < n; l++){
            for(int r = l; r < n; r++){
                if(r == l){
                    levo = a[l];
                    desno = b[l];
                    maxi = max(maxi, (levo * desno));
                }
                else{
                    levo = levo ^ a[r];
                    desno = desno & b[r];
                    maxi = max(maxi, (levo * desno));
                }
            }
        }
        cout << maxi << endl;
    }
    else{
        bool svea = true;
        bool sveb = true;
        for(int i = 0; i < n; i++){
            if(a[i] != 1){
                svea = false;
            }
            if(b[i] != 1){
                sveb = false;
            }
        }
        if(svea){
            int maksi = 0;
            for(int i = 0; i < n; i++){
                maksi = max(maksi, b[i]);
            }
            cout << maksi << endl;
        }
        else if(sveb){
            vector<int> pref(n + 1);
            pref[0] = 0;
            for(int i = 1; i <= n; i++){
                pref[i] = pref[i - 1] ^ a[i - 1];
            }
            n++;
            //ne znam kako sad
        }
    }
}   
 


signed main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int t = 1;
    //cin >> t;
    while(t--){
        solve();
    }
    return 0;
}