AT_arc199_b [ARC199B] Adjacent Replace

Description

長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ および非負整数 $ K $ が与えられます. 以下の操作を $ 10^4 $ 回以下行うことで $ A_1=K $ にすることが可能かどうか判定してください. - 整数 $ i\ (1\leq i\leq N-1) $ を選ぶ. $ x=A_i\oplus A_{i+1} $ としたとき, $ A_i,A_{i+1} $ をそれぞれ $ x $ で置き換える. ここで, $ \oplus $ はビット単位 $ \mathrm{XOR} $ 演算です. 可能な場合,そのような操作手順を一つ出力してください. $ T $ 個のテストケースが与えられるので,それぞれについて答えてください. ビット単位 $ \mathrm{XOR} $ 演算とは 非負整数 $ A, B $ のビット単位 $ \mathrm{XOR} $ 、 $ A \oplus B $ は、以下のように定義されます。 - $ A \oplus B $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ A, B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケースは以下の形式で与えられる. > $ N $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

$ \mathrm{case}_1,\mathrm{case}_2,\ldots,\mathrm{case}_T $ に対する答えを順に以下の形式で出力せよ. 操作を $ 10^4 $ 回以下行うことで $ A_1=K $ とすることが不可能な場合 `No` と出力せよ. 可能な場合,操作手順を以下の形式で出力せよ. > Yes $ M $ $ i_1 $ $ i_2 $ $ \ldots $ $ i_M $ ここで, $ M $ は操作回数, $ i_j\ (1\leq j\leq M) $ は $ j $ 回目の操作で選ぶ整数 $ i $ を表す. $ 0\leq M\leq 10^4, 1\leq i_j\leq N-1 $ を満たす必要がある. 条件を満たす操作手順が複数存在する場合,そのどれを出力しても正解とみなされる.

Explanation/Hint

### Sample Explanation 1 $ 1 $ つ目のテストケースについて,次のように操作をすることで $ A_1=5 $ とすることができます. 1. $ i=2 $ を選ぶ. $ A=(2,7,7) $ になる. 2. $ i=1 $ を選ぶ. $ A=(5,5,7) $ になる. $ 2 $ つ目のテストケースについて,次のように操作をすることで $ A_1=0 $ とすることができます. 1. $ i=1 $ を選ぶ. $ A=(1,1,4) $ になる. 2. $ i=1 $ を選ぶ. $ A=(0,0,4) $ になる. 3. $ i=1 $ を選ぶ. $ A=(0,0,4) $ になる. $ 3 $ つ目のテストケースについて, $ 10^4 $ 回以下の操作によって $ A_1=8 $ とすることはできません. ### Constraints - $ 1\leq T\leq 50 $ - $ 3\leq N\leq 60 $ - $ 0\leq A_i,K\lt 2^{60} $ - 入力は全て整数