Problem8455--异或(xor)

8455: 异或(xor)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

[丛雨]有一个数列 $a_1,a_2,...,a_n$。

有一天,[芳乃]拿来了一个正整数 $X$。

丛雨是一个特别喜欢异或(xor)运算的孩子,她也很喜欢芳乃。

于是, 丛雨就想知道,自己能找到多少对数 $(i,j)$ 能够满足 $a_i \text{xor} a_j=X$。

两个数对 $(i_1, j_1)$ 与 $(i_2, j_2)$ 不同,当且仅当 $i_1≠i_2$ 或者 $j_1≠j_2$。

提示:异或运算在 C++里的算符是 ^。

Input

第一行两个正整数 $n,X$,分别表示数列的长度以及芳乃带来的整数。

第二行包含 $n$ 个正整数,表示数列 $a_n$。

Output

一行一个整数表示答案。

Constraints

对于 $50\%$ 的数据,$1≤n≤2,000$。
对于接下来 $20\%$ 的数据,$1≤a_i≤100,000$。
对于 $100\%$ 的数据,$1≤n≤1,000,000,1≤a_i≤2^{30}, 1≤X≤2^{30}$。

Sample 1 Input

5 1
1 4 2 2 5

Sample 1 Output

2
因为 4 xor 5=1,所以这两个数对是 (2,5) 和 (5,2)。

Source/Category