#include <bits/stdc++.h>
using namespace std;
int a[1000000];
vector<int> bits[1000000];
int num[1 << 21];
int ii;
int doDFS(int m, int b) {
  if (num[m] >= 2) return 0;
  if (b == bits[ii].size()) {
    num[m]++;
    return 0;
  }
  doDFS(m, b + 1);
  doDFS(m ^ (1 << bits[ii][b]), b + 1);
  return 0;
}
int main() {
  int i;
  int n;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  int j;
  int ans = 0;
  for (i = 0; i < n; i++) {
    for (j = 0; j <= 20; j++) {
      if (a[i] & (1 << j)) bits[i].push_back(j);
    }
  }
  for (i = n - 1; i >= 0; i--) {
    int x = 0;
    for (j = 20; j >= 0; j--) {
      if (!(a[i] & (1 << j)) && (num[x | (1 << j)] >= 2)) x |= (1 << j);
    }
    ans = max(ans, a[i] | x);
    ii = i;
    doDFS(a[i], 0);
  }
  printf("%d\n", ans);
  return 0;
}
