#include <bits/stdc++.h>
using namespace std;
using u32 = unsigned int;
const int N = 5e7;
int n;
u32 seed, a[N];
inline u32 input(u32 x) {
x ^= x << 13;
x ^= x >> 17;
x ^= x << 5;
return x;
}
void output() {
u32 re = n;
u32 x = 23333333;
for (u32 i = 0; i < n; i++) {
re = re ^ (a[i] + x);
x ^= x << 13;
x ^= x >> 17;
x ^= x << 5;
}
cout << re << '\n';
}
void solve() {
cin >> n >> seed;
for (int i = 0; i < n; i++) {
seed = input(seed);
a[i] = seed;
}
sort(a, a + n);
output();
}
int main() {
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyB1MzIgPSB1bnNpZ25lZCBpbnQ7Cgpjb25zdCBpbnQgTiA9IDVlNzsKCmludCBuOwp1MzIgc2VlZCwgYVtOXTsKCmlubGluZSB1MzIgaW5wdXQodTMyIHgpIHsKCXggXj0geCA8PCAxMzsKICAgIHggXj0geCA+PiAxNzsKICAgIHggXj0geCA8PCA1OwogICAgcmV0dXJuIHg7Cn0KCnZvaWQgb3V0cHV0KCkgewogICAgdTMyIHJlID0gbjsKICAgIHUzMiB4ID0gMjMzMzMzMzM7CiAgICBmb3IgKHUzMiBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHJlID0gcmUgXiAoYVtpXSArIHgpOwogICAgICAgIHggXj0geCA8PCAxMzsKICAgICAgICB4IF49IHggPj4gMTc7CiAgICAgICAgeCBePSB4IDw8IDU7CiAgICB9CiAgICBjb3V0IDw8IHJlIDw8ICdcbic7Cn0KCnZvaWQgc29sdmUoKSB7CgljaW4gPj4gbiA+PiBzZWVkOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQlzZWVkID0gaW5wdXQoc2VlZCk7CgkJYVtpXSA9IHNlZWQ7Cgl9Cglzb3J0KGEsIGEgKyBuKTsKCW91dHB1dCgpOwp9CgppbnQgbWFpbigpIHsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==