#include <iostream>
using namespace std;
const int MAX_N = 100005;
long long A[MAX_N];
int main() {
int N;
long long K;
cin >> N >> K;
for (int i = 0; i < N; ++i) {
cin >> A[i];
}
long long bitCount[45] = {0};
for (int i = 0; i < N; ++i) {
for (int b = 0; b < 45; ++b) {
if ((A[i] >> b) & 1) {
bitCount[b]++;
}
}
}
long long bestX = 0;
for (int b = 44; b >= 0; --b) {
long long tempX = bestX | (1LL << b);
if (tempX > K) continue;
long long ones = bitCount[b];
long long zeros = N - ones;
if (zeros > ones) {
bestX = tempX;
}
}
long long result = 0;
for (int i = 0; i < N; ++i) {
result += (A[i] ^ bestX);
}
cout << result << endl;
return 0;
}