#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int N;
    cin >> N;

    vector<int> A(N), B(N);
    for (int i = 0; i < N; ++i) cin >> A[i];
    for (int i = 0; i < N; ++i) cin >> B[i];

    vector<int> XOR_prefiks(N + 1, 0);
    for (int i = 1; i <= N; ++i) {
        XOR_prefiks[i] = XOR_prefiks[i - 1] ^ A[i - 1];
    }

    long long maks_vrednost = 0;

    for (int L = 0; L < N; ++L) {
        int trenutni_AND = B[L];
        for (int R = L; R < N; ++R) {
            trenutni_AND &= B[R];
            int trenutni_XOR = XOR_prefiks[R + 1] ^ XOR_prefiks[L];
            maks_vrednost = max(maks_vrednost, 1LL * trenutni_XOR * trenutni_AND);
        }
    }

    cout << maks_vred???? << endl;
    return 0;
}