#XMOJ10405. 玩家交友

玩家交友

说明

时间限制:1 Sec 内存限制:256 MB 输入文件friends.in 输出文件friends.out

在《士兵的召唤3》这款游戏中,有 nn 种士兵,编号从 00n1n-1

游戏里已有 mm 个玩家,编号从 11mm,小明作为新加入的玩家,编号为 m+1m+1

每位玩家拥有一支军队,军队用数字 xx 表示,其二进制表示的第 ii 位上为 11 表示军队中拥有编号为 ii 的士兵。例如军队为 3737,其二进制表示为 100101100101,第 002255 位为 11,所以这支军队中拥有编号为 002255 的士兵。

小明发现,如果两个玩家的军队的二进制表示中不同的位的数量不超过 kk 的话,这两位玩家就可以成为朋友。

他想知道,在已有的 mm 个玩家中有几个可以成为他的朋友,请你计算一下。

输入格式

第一行为空格分隔的三个整数 nnmmkk

接下来为空格分隔的 m+1m+1 个整数 x1x_1x2x_2、……、xm+1x_{m+1},分别表示编号从 11mm 的玩家和小明自己的军队。

输出格式

一个整数,表示在已有的 mm 个玩家中有几个可以成为小明的朋友。

样例

样例 1

7 3 1
8
5
111
17

0

样例说明:小明的军队的二进制表示为:0001000100010001

已有的 33 个玩家的军队的二进制表示如下:

0000100000001000

0000010100000101

0110111101101111

与小明军队的二进制表示不同的位数分别为:332255,均大于 11,所以没人能和小明成为朋友。

样例 2

3 3 3
1
2
3
4

3

样例说明:小明的军队的二进制表示为:01000100

已有的 33 个玩家的军队的二进制表示如下:

00010001

00100010

00110011

与小明军队的二进制表示不同的位数分别为:222233,均小于等于 33,所以能和小明成为朋友的有 33 个人。

数据范围

1kn201 \le k \le n \le 20

1m10001 \le m \le 1000

1xi2n11 \le x_i \le 2^n-1