#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int N; vector A; int dfs(int cur, int mask, int val) { if (mask == (1 << N) - 1) { return val; } int value = 0; if (mask >> cur & 1) { return dfs(cur + 1, mask, val); } for (int j = cur + 1; j < N; ++j) { if (mask >> j & 1) continue; int nmask = mask | (1 << cur) | (1 << j); int n_val = val ^ (A[cur] + A[j]); int v = dfs(cur + 1, nmask, n_val); value = max(value, v); } return value; } int main() { cin >> N; for (int i = 0; i < N; ++i) { ll a; cin >> a; A.push_back(a); } cout << dfs(0, 0, 0) << endl; return 0; }