#include #include using namespace std; int dfs(vector &A, vector &used, int X){ int N = A.size(); vector r; for (int i = 0; i < N; i++){ if (!used[i]){ r.push_back(i); } } if (r.empty()){ return X; } else { int cnt = r.size(); int ans = 0; used[r[0]] = true; for (int i = 1; i < cnt; i++){ used[r[i]] = true; ans = max(ans, dfs(A, used, X ^ (A[r[0]] + A[r[i]]))); used[r[i]] = false; } used[r[0]] = false; return ans; } } int main(){ int N; cin >> N; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector used(N, false); cout << dfs(A, used, 0) << endl; }