F. Tree XOR
time limit per test
2 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

As usual, SUL was thinking about many strange questions, such as did Newton discover that he could sit under trees, and that apples fall down on the same day he discovered gravity, and why was it one apple not k apples? So think about the following problem

You are given a tree of size $$$n$$$, each node $$$x$$$ has a value $$$a_x$$$.

Find a connected component $$$G$$$ in the tree such that the bitwise XOR $$$\oplus$$$ of $$$a_x$$$ for all nodes $$$x \in G$$$ equals $$$k$$$, or determine that no such component exists.

Input

The first line contains one integer $$$t \: (1 \le t \le 10^4)$$$ — the number of test cases.

The first line of each test case consists of two integers $$$n$$$ and $$$k \: (1 \le n \le 5 \cdot 10^4 , \: 0 \le k \le 63)$$$.

The second line of each test case contains $$$n$$$ integers $$$a_1, a_2, \ldots, a_n \: (0 \le a_i \le 63)$$$.

Each of the next $$$n - 1$$$ lines contains two integers $$$v$$$ and $$$u \: (1 \le v , u \le n)$$$ — the description of the edges of the tree. It's guaranteed that the given edges form a valid tree.

It is guaranteed that the sum of $$$n$$$ over all test cases doesn't exceed $$$5 \cdot 10^4$$$.

Output

For each testcase, output "Yes" $$$\:$$$ if there is a connected component that satisfies the above conditions, then output $$$s$$$, the size of the connected component, followed by $$$s$$$ integers representing the nodes in $$$G$$$.

If no such connected component exists, output "No".

Example
Input
2
3 0
1 13 3
1 2
2 3
10 5
7 23 3 1 2 3 6 10 2 4
1 2
2 3
2 4
3 5
4 6
1 7
2 8
6 9
6 10
Output
NO
YES
3
6 9 10 
Note

Consider the first testcase. An empty component is not a valid answer.