#include <bits/stdc++.h>
using namespace std;

using ll = long long;

ll solve(const vector<ll>& a, ll x) {
    int n = (int)a.size();
    if (n < 2) return 0;

    ll dp0 = 0, dp1 = 0;

    for (int i = 1; i < n; ++i) {
        ll ndp0 = max(dp0 + (a[i - 1] ^ a[i]),
                      dp1 + ((a[i - 1] + x) ^ a[i]));

        ll ndp1 = max(dp0 + (a[i - 1] ^ (a[i] + x)),
                      dp1 + ((a[i - 1] + x) ^ (a[i] + x)));

        dp0 = ndp0;
        dp1 = ndp1;
    }

    return max(dp0, dp1);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    ll x;
    cin >> n >> x;

    vector<ll> a(n);
    for (int i = 0; i < n; ++i) cin >> a[i];

    cout << solve(a, x) << '\n';
    return 0;
}