#include <iostream>

int main() {
    unsigned int n, a[200000], b[200000], l, r, pom_xor, pom_and;
    long long pom, max=0;
    scanf("%d", &n);
    for (int i=0; i<n; i++) scanf("%d", &a[i]);
    for (int i=0; i<n; i++) scanf("%d", &b[i]);
    for (int l=0; l<n; l++) {
        pom_xor=0;
        pom_and=(1 << 30)-1;
        for (int r=l; r<n; r++) {
            pom_xor^=a[r];
            pom_and&=b[r];
            if (!pom_and) break;
            pom=pom_xor*pom_and;
            if (pom>max) max=pom;
        }
    }
    printf("%lld", max);
    return 0;
}