#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 mask, int val) { if (__builtin_popcount(mask) == N) { return val; } int value = 0; for (int i = 0; i < N; ++i) { if (mask >> i & 1) continue; for (int j = i + 1; j < N; ++j) { if (mask >> j & 1) continue; int nmask = mask | (1 << i) | (1 << j); int n_val = val ^ (A[i] + A[j]); int v = dfs(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) << endl; return 0; }