//2010 Asia Chengdu Regional Contest
//http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1003&ojid=0&cid=3151&hide=0
//简单的位运算题
#include<cstdio>
#include<cstring>
#include<iostream>
#define MAX 0x7fffffff
using namespace std;
int c[101];
int dif(int a,int b){
int i,cou=0;
for(i=20;i>-1;i--){
if((a>>i)^(b>>i)){
cou++;
a|=(1<<i);
b|=(1<<i);
}
}
return cou;
}
void fmin(int b,int *a,int &m,int k){
int cou=23,i,j,t;
for(i=0;i<m;i++){
if((cou>(j=dif(a[i],b)))||((cou==j)&&(t>a[i]))){
cou=j;
t=a[i];
}
}
c[k]=t;
}
int main(){
int i,n,m,t,a[101],b[101];
cin>>t;
while(t--){
cin>>m>>n;
for(i=0;i<m;i++) cin>>a[i];
for(i=0;i<n;i++){
cin>>b[i];
fmin(b[i],a,m,i);
}
for(i=0;i<n;i++) cout<<c[i]<<endl;
}
return 0;
}