#include <stdio.h>
#include <algorithm>
#define ll long long
using namespace std;
const int N = 2e5 + 5;
int n, k, a[N];
ll b[N], ans;
inline void dfs(int i, int t, ll sum) {
if (t > k || n - i + 1 + t < k)
return;
if (t == k) {
ans = max(ans, sum);
return;
}
if (n - i + 1 == k - t) {
ans = max(ans, sum ^ b[i]);
return;
}
if (i == n + 1)
return;
dfs(i + 1, t, sum);
dfs(i + 1, t + 1, sum ^ a[i]);
}
int main() {
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
b[n] = a[n];
for (int i = n - 1; i; i--)
b[i] = b[i + 1] ^ a[i];
dfs(1, 0, 0);
printf("%lld", ans);
}
WA * 45
球球各位dalao帮我看一下