#arc145e. [arc145_e]Adjacent XOR

[arc145_e]Adjacent XOR

問題文

長さ NN の非負整数列 $A=(A_1,A_2,\\ldots,A_{N}),B=(B_1,B_2,\\ldots,B_{N})$ が与えられます。

数列 AA に対し以下の操作を 7000070000 回以下行うことで AABB に一致させられるか判定し、可能な場合は実際に操作手順を一つ示してください。

  • 整数 K(1leKleN)K\\ (1\\le K \\le N) を選ぶ。全ての i(2leqileqK)i\\ (2\\leq i \\leq K) について、 AiA_i の値を Ai1oplusAiA_{i-1} \\oplus A_i で置き換える。この置き換えは全ての i(2leqileqK)i\\ (2\\leq i \\leq K) に対して同時に行う。

ただしここで、oplus\\oplus はビット単位 mathrmXOR\\mathrm{XOR} 演算を表します。

ビット単位 mathrmXOR\\mathrm{XOR} 演算とは

非負整数 A,BA,B のビット単位 mathrmXOR\\mathrm{XOR} 演算、AoplusBA\\oplus B は、以下のように定義されます。

  • AoplusBA\\oplus B を二進表記した際の 2k(kgeq0)2^k\\ (k\\geq 0) の位の数は、A,BA,B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63\\oplus 5 = 6 となります(二進表記すると: 011oplus101=110011\\oplus 101 = 110)。

制約

  • 2leqNleq10002 \\leq N \\leq 1000
  • 0leqAi,Bi<2600 \\leq A_i, B_i < 2^{60}
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN A1A_1 A2A_2 ldots\\ldots ANA_N B1B_1 B2B_2 ldots\\ldots BNB_N

出力

7000070000 回以下の操作で AABB に一致させられない場合、No と出力せよ。一致させられる場合、操作回数を MM 回とし、ii 回目の操作で選んだ整数を KiK_i として以下の形式で出力せよ。

Yes MM K1K_1 K2K_2 ldots\\ldots KMK_M

条件を満たす解が複数存在する場合、どれを出力しても正解とみなされる。


入力例 1

3
1 2 0
1 2 3

出力例 1

Yes
2
2 3

この出力例では、操作によって数列 AA は以下のように変化します。

  • 初期状態:A=(1,2,0)A=(1, 2, 0)
  • 11 回目の操作後:A=(1,3,0)A=(1, 3, 0)
  • 22 回目の操作後:A=(1,2,3)A=(1, 2, 3)

22 回の操作後、AABB は一致しているのでこの出力は条件を満たします。


入力例 2

2
10 100
1 0

出力例 2

No

入力例 3

2
1152921504606846975 0
1152921504606846975 0

出力例 3

Yes
0