#include<iostream>
using namespace std;
int x[10100];
int main ()
{
int n,m,k;
while(cin>>n>>m>>k)
{
int ans=0;
for(int i=0;i<=m;i++)
cin>>x[i];
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=0;j<n;j++)
{
if((x[i]&(1<<j))^( x[m]&(1<<j)))
{
// cout<<x[i]&(i<<j)<< ' '<<x[m]&();
sum++;
}
}
if(sum<=k)
ans++;
}
cout<<ans<<endl;
}
}
x&(i<<j)是表示二进制的第j为是多少
(x[i]&(i<<j))^(x[j]&(i<<j))
1 2
异或 如果 1和2部分相同为零,不同为1