dp
#include<stdio.h>
#include<string.h>
int dp[45][1<<21];
int a[45];
int main()
{
int T,n,m,flag=0;
long long int s;
scanf("%d",&T);
while(T--)
{
flag++;
s=0;
memset(dp,0,sizeof(dp));
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<(1<<21);j++)
dp[i][j]=dp[i-1][j];
for(int j=0;j<(1<<21);j++)
{
if(dp[i-1][j]!=0)
{
dp[i][j^a[i]]+=dp[i-1][j];
}
}
}
for(int i=m;i<(1<<21);i++)
{
s=s+dp[n][i];
}
printf("Case #%d: %I64d\n",flag,s);
}
return 0;
}