#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int n,cnt;
LL a[100005],d[65],d1[65],s;
inline void insert(LL x)
{
LL x1=x;
for(int i=63;i>=0;i--)
if(x1&(1ll<<i))
{
if(d[i])
x1^=d[i];
else
{
d[i]=x1;
break;
}
}
}
inline LL Max()
{
LL ans=0;
for(int i=63;i>=0;i--)
ans=max(ans,ans^d[i]);
return ans;
}
inline void K_pre()
{
for(int i=63;i>=0;i--)
for(int j=i-1;j>=0;j--)
if(d[i]&(1ll<<j))
d[i]^=d[j];
for(int i=0;i<=63;i++)
if(d[i])
d1[cnt++]=d[i];
}
inline LL Kth(LL k)
{
LL ret=0;
if(cnt<n)
k--;
if(k>=(1ll<<cnt))
return -1;
for(int i=0;i<cnt;i++)
if(k&(1ll<<i))
ret^=d1[i];
return ret;
}
int main()
{
int T,Q,t1=0;
scanf("%d",&T);
while(T--)
{
memset(d,0,sizeof(d));
memset(d1,0,sizeof(d1));
cnt=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
LL x;
scanf("%lld",&x);
insert(x);
}
K_pre();
scanf("%d",&Q);
printf("Case #%d:\n",++t1);
while(Q--)
{
LL k;
scanf("%lld",&k);
printf("%lld\n",Kth(k));
}
}
}