#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int cmp(const void *a,const void *b) {
return *(int *)a-*(int *)b;
}
int seach(int n,int m) {
int sum=0,n_x,m_x;
while(n||m) {
n_x=n%2;
m_x=m%2;
n/=2;
m/=2;
if(n_x!=m_x)
sum++;
}
return sum;
}
int main() {
int i,j,n,m,a[1001],b[1001],min,ma,ma_x,t;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
for(j=0;j<n;j++)
scanf("%d",&b[j]);
qsort(a,m,sizeof(a[0]),cmp);
for(i=0;i<n;i++) {
min=10000001;
for(j=0;j<m;j++) {
ma=seach(b[i],a[j]);
if(ma<min) {
min=ma;
ma_x=a[j];
}
}
printf("%d\n",ma_x);
}
}
return 0;
}