#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline") #pragma GCC option("arch=native","tune=native","no-zero-upper") #pragma GCC target("avx2") #include using namespace std; using uint = uint32_t; using ull = uint64_t; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); const uint mx = 200192, w = 1 << 9; uint a[mx] = {}; uint n, x; cin >> n >> x; for(uint i = 0; i < n; i++) cin >> a[i]; ull ans = 0; for(uint ib = 0; ib < mx; ib += w) for(uint jb = ib + w; jb < mx; jb += w) for(uint i = ib; i < ib + w; i++) for(uint j = jb; j < jb + w; j++) if((a[i] ^ a[j]) < x) ans += a[i] | a[j]; for(uint ib = 0; ib < mx; ib += w) for(uint i = ib; i < ib + w; i++) for(uint j = i + 1; j < ib + w; j++) if((a[i] ^ a[j]) < x) ans += a[i] | a[j]; for(uint i = 0; i < mx; i++) if(a[i] < x) ans -= ull(a[i]) * (mx - n); cout << ans << '\n'; }