#CSPJ1014. 小 Z 的彩票序列(lottery)

小 Z 的彩票序列(lottery)

题目描述

众所周知,小 Z 很贫穷。当上帝听说这件事后,他决定帮助这个可怜的小 Z 摆脱悲惨的处境。

有一天,小 Z 在梦中遇到了上帝,上帝给了他一个神秘的数字 xx,这个数字将会给小 Z 带来巨大的财富。具体来说这个数字 xx 是彩票的号码结果,其价值高达,彩票奖金高达五千万美元。

小 Z 非常兴奋,以至于小 Z 准备购买 nn 张彩票,彩票编号为 1,2,,n1,2,\cdots,n,每张彩票的数字可以分别用 a1,a2,,ana_1,a_2,\cdots,a_n 表示。但是小 Z 还没有收到这些彩票。

这个彩票的中奖规则是这样的,小 Z 可以从收到的彩票中任意挑选一些彩票,假设选 kk 张彩票,彩票编号为 b1,b2,,bkb_1,b_2,\cdots,b_k,如果这些彩票的按位或,即 ab1ab2abk=xa_{b_1} | a_{b_2} | \cdots | a_{b_k}=x,那么小 Z 就可以获得这一份大奖。其中 | 表示 C++ 中的按位或运算。

作为彩票店的老板小 Y,不想让小 Z 获得这份大奖,所以小 Y 会在发给小 Z 这 nn 张彩票之前,拿走(删除)一些彩票。使得小 Z 收到删掉之后剩余的彩票序列后,无论小 Z 选择哪些彩票参与按位或运算,都无法中奖。

问小 Y 最少需要拿走(删除)多少张彩票?

输入格式

lottery.in 文件读入数据。

第一行输入两个正整数 n,xn,x 分别表示彩票个数和中奖数字。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

输出到 lottery.out 文件。

输出一行一个整数表示答案。

输入输出样例

3 7
4 2 1
1

样例2

点击链接 ex_lottery2.inex_lottery2.out 文件下载大样例 2 的输入数据和输出数据。

说明提示

样例 1 解释

删掉任意一张彩票后,小 Z 都无法中奖。

数据范围

对于 20%20\% 的数据,n10,1x,ai104n\le 10,1\le x,a_i \le 10^4

对于 50%50\% 的数据,n103,1x,ai105n\le 10^3,1\le x,a_i \le 10^5

对于 100%100\% 的数据,n105,1x,ai109n\le 10^5,1\le x,a_i \le 10^9