#include using namespace std; const int MAXN = 1e6 + 10; const int LOG = 19; int n, a[MAXN], x[MAXN]; bool mark[MAXN]; int main(){ scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]), x[a[i]] = a[i]; for (int mask = 1; mask < 1<>w&1) x[mask] |= x[mask^1<>w&1) found |= mark[mask^1<>w&1) mark[mask] |= mark[mask^1<