#include<cstdio>#define M 1000int f(int x,int y){ int t1=x^y; int tsum=0; while(t1){ if(t1&1) tsum++; t1>>=1; } return tsum;}int a[M];int b[M];int main(){ int cas; while(~scanf("%d",&cas)){ while(cas--){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<m;i++) scanf("%d",&b[i]); for(int i=0;i<m;i++){ int t1=b[i]; int tmin=100000; int flag=0; for(int j=0;j<n;j++){ int t2=f(t1,a[j]);if(t2<tmin){ tmin=t2;flag=a[j]; }else if(t2==tmin){ if(flag>a[j]) flag=a[j]; } } printf("%dn",flag); } } } return 0;}


