There are some beautiful girls in Arpa’s land as mentioned before.

Once Arpa came up with an obvious problem:

Given an array and a number x, count the number of pairs of indices i, j (1 ≤ i < j ≤ n) such that <image>, where <image> is bitwise xor operation (see notes for explanation).

<image>

Immediately, Mehrdad discovered a terrible solution that nobody trusted. Now Arpa needs your help to implement the solution to that problem.

Input

First line contains two integers n and x (1 ≤ n ≤ 105, 0 ≤ x ≤ 105) — the number of elements in the array and the integer x.

Second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 105) — the elements of the array.

Output

Print a single integer: the answer to the problem.

Examples

Input

2 3
1 2


Output

1

Input

6 1
5 1 2 3 4 1


Output

2

Note

In the first sample there is only one pair of i = 1 and j = 2. <image> so the answer is 1.

In the second sample the only two pairs are i = 3, j = 4 (since <image>) and i = 1, j = 5 (since <image>).

A bitwise xor takes two bit integers of equal length and performs the logical xor operation on each pair of corresponding bits. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1. You can read more about bitwise xor operation here: <https://en.wikipedia.org/wiki/Bitwise_operation#XOR>.
#include <bits/stdc++.h>
using namespace std;
long long pow(long long a, long long b, long long p) {
  long long sum = 1;
  for (a %= p; b; a = a * a % p, b >>= 1)
    if (b & 1) sum = sum * a % p;
  return sum;
}
long long phi(long long n) {
  long long i, re = n;
  for (i = 2; i * i <= n; i++)
    if (n % i == 0) {
      re = re / i * (i - 1);
      while (n % i == 0) n /= i;
    }
  if (n > 1) re = re / n * (n - 1);
  return re % 1000000007;
}
void exgcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1;
    y = 0;
    return;
  }
  exgcd(b, a % b, y, x);
  y -= x * (a / b);
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
int gg[1000100], he[1000100];
int main() {
  int x, n;
  long long m;
  scanf("%d%d", &n, &x);
  for (int i = 0; i < n; i++) {
    scanf("%d", &gg[i]);
    he[gg[i]]++;
  }
  m = 0;
  for (int i = 0; i < n; i++) {
    m += he[gg[i] ^ x];
    if (x == 0) m--;
  }
  printf("%I64d\n", m / 2);
}
