#include using namespace std; using ll = long long; using pii = pair; using pll = pair; #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i < (n); i++) template istream& operator >> (istream& s, vector& v) { for (T& x: v) { s >> x; } return s;} template istream& operator >> (istream& s, pair& p) { s >> p.first >> p.second; return s;} int main() { int N, X; cin >> N >> X; map m; rep(i, N) { int A; cin >> A; m[A]++; } ll ans = 0; for (const auto& p : m) { const int& A = p.first; const int& c = p.second; int B = A^X; if (m.count(B) > 0) { ans += c * m[B]; } } ans /= 2; cout << ans << endl; }