#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 ",ma_x); } } return 0; }