include [HTML_REMOVED]
using namespace std;
const int N = 1e5 + 1;
int son[31 * N][2], cnt[31 * N], a[N], idx;
void insert (int x) {
int p = 0;
for (int i = 30 ; i >= 0; i –) {
int u = x >> i & 1;
if (!p[son][u]) son[p][u] = idx;
p = son[p][u];
cnt[p];
}
}
void delte (int x) {
int p = 0;
for (int i = 30; i >= 0; i –) {
int u = x >> i & 1;
p = son[p][u];
cnt[p]–;
}
}
int query (int x) {
int p = 0, res = 0;
for (int i = 30; i >= 0; i –) {
int u = x >> i & 1;
res *= 2;
if (son[p][!u] && cnt[p[son][!u]]) p = son[p][!u], res += 1;
else p = son[p][u];
}
return res;
}
int main () {
int n, m, res = 0;
scanf(“%d %d”, &n, &m);
for (int i = 1; i <= n; i ) scanf(“%d”, &a[i]);
for (int i = 1; i <= n; i ) a[i] ^= a[i - 1];
for (int i = 0, j = 0; j <= n; j ) {
if (j - i <= m) {
insert(a[j]);
res = max(res, query(a[j]));
} else {
insert(a[j]);
delte(a[i]);
i;
res = max(res, query(a[j]));
}
}
printf(“%d\n”, res);
return 0;
}