#include <bits/stdc++.h>

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> prefiksXOR(n + 1, 0);
  for (int i = 1; i <= n; ++i)
    prefiksXOR[i] = prefiksXOR[i - 1] ^ a[i - 1];
  int maks = INT_MIN;
  int najboljeL = 0;
  int najboljeR = 0;
  for (int l = 0; l < n; ++l) {
    int sadasnjeAND = b[l];
    for (int r = l; r < n; ++r) {
      sadasnjeAND  &= b[r];
      int sadasnjeXOR = prefiksXOR[r + 1] ^ prefiksXOR[l];
      int product = sadasnjeXOR * sadasnjeAND;
      if (product > maks) {
        maks = product;
        najboljeL = l;
        najboljeR = r;
      }
    }
  }
  int ans = INT_MIN;
  int sadaAND = b[najboljeL];
  for (int r = najboljeL; r <= najboljeR; ++r) {
    sadaAND &= b[r];
  }
  int maksXOR = 0;
  for (int r = najboljeL; r <= najboljeR; ++r) {
    maksXOR ^= a[r];
  }
  ans = maksXOR * sadaAND;
  cout << ans << endl;
  return 0;
}