#P14010. DNA身份确认

DNA身份确认

题目描述

假设人的 DNA 特征都可以用一个 3030 位二进制整数来描述(为了方便存储,通常将其转化为十进制来记录)。根据专家的研究结果,两个人有亲属关系,当且仅当他们的 DNA 特征对应的二进制整数按位异或得到的二进制整数中,有且仅有两个数位上为 11

现在提供需要确认身份的 nn 个人的 DNA 特征值,以及 mm 个家庭的 DNA 特征值,需要你统计 nn 个人中通过上面的方法能确认其家庭的人数。

输入格式

第一行是两个正整数 n,mn,m,分别表示需要确认身份的人数和家庭的数量;

接下来有 nn 行,每行是一个十进制正整数,分别是要确认身份的一个人的 DNA 特征值;

接下来有 mm 行,每行是一个十进制正整数,分别是一个家庭的 DNA 特征值;

输出格式

一个整数,就是 nn 个人中通过上面的方法能确认其家庭的人数。

输入输出样例

5 2
1
2
3
10
20
6
100
3

说明/提示

👀️ C/C++\verb|C/C++| 中的 ^ 运算能计算两个整数按位异或的结果,例如 2^4=6

👀️ 对于 100%100\% 的数据,1n,m80001 \leq n,m \leq 8000,每个 DNA 特征值都是小于 2302^{30} 的正整数。