Binary Number

Time Limit: 2 Seconds
Memory Limit: 65536 KB

For 2 non-negative integers *x* and *y*, f(*x*, *y*) is defined as the number of different bits in the binary format of *x* and *y*.
For example, f(2, 3)=1, f(0, 3)=2, f(5, 10)=4.

Now given 2 sets of non-negative integers **A** and **B**, for each integer *b* in **B**, you should find an integer *a* in **A** such that f(*a*, *b*) is minimized.
If there are more than one such integers in set *A*, choose the smallest one.

**Input**

The first line of the input is an integer *T* (0 < *T* ≤ 100), indicating the number of test cases.
The first line of each test case contains 2 positive integers *m* and *n* (0 < *m*, *n* ≤ 100), indicating the numbers of integers of the 2 sets **A** and **B**, respectively.
Then follow (*m* + *n*) lines, each of which contains a non-negative integers no larger than 1000000. The first *m* lines are the integers in set **A** and the other *n* lines are the integers in set **B**.

**Output**

For each test case you should output *n* lines, each of which contains the result for each query in a single line.

**Sample Input**

2
2 5
1
2
1
2
3
4
5
5 2
1000000
9999
1423
3421
0
13245
353

**Sample Output**

1
2
1
1
1
9999
0

Author:

**CAO, Peng**
Source:

**The 2010 ACM-ICPC Asia Chengdu Regional Contest**
Submit
Status