#agc059d. [agc059_d]Distinct Elements on Subsegments

[agc059_d]Distinct Elements on Subsegments

問題文

整数列 A=(A1,A2,ldots,AN+K1)A=(A_1, A_2, \\ldots, A_{N + K-1}) (1leqAileqN+K11 \\leq A_i \\leq N+K-1) に対して、BiB_iAi,Ai+1,ldots,Ai+K1A_i,A_{i+1},\\ldots,A_{i+K-1} の中の相異なる要素の個数として、列 B=(B1,B2,ldots,BN)B=(B_1, B_2, \\ldots, B_N) を作ります。

B1,B2,ldots,BNB_1, B_2, \\ldots, B_N が与えられます。この列 BB を生成し得た列 AA が存在するか判定し、存在する場合はそのような列 AA を一つ構成してください。

各入力ファイルについて、TT 個のテストケースを解いてください。

制約

  • 1leTle5cdot1041 \\le T \\le 5 \\cdot 10^4
  • 2leNle2cdot1052 \\le N \\le 2 \\cdot 10^5
  • 2leKle2cdot1052 \\le K \\le 2 \\cdot 10^5
  • 1leBileK1 \\le B_i \\le K
  • 各入力ファイル内の NN の総和は 2cdot1052\\cdot 10^5 を超えない。
  • 各入力ファイル内の KK の総和は 2cdot1052\\cdot 10^5 を超えない。
  • 入力中のすべての値は整数である。

入力

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

TT case1case_1 case2case_2 vdots\\vdots caseTcase_T

各ケースは以下の形式である。

NN KK B1B_1 B2B_2 ldots\\ldots BNB_N

出力

各テストケースについて、題意を満たす列 AA が存在しなければ、NO と出力せよ。

そうでなければ、答えを次の形式で出力せよ。

YES A1A_1 A2A_2 ldots\\ldots AN+K1A_{N+K-1}

ここで、1leqAileqN+K11 \\leq A_i \\leq N+K-1 でなければならず、AABB を生成するものでなければならない。 複数の解が存在する場合は、そのいずれも認められる。

YES または NO の出力において、各文字は英大文字・小文字のいずれでもよい。


入力例 1

3
3 3
1 2 1
4 3
1 2 2 1
6 4
3 3 3 3 3 3

出力例 1

NO
YES
1 1 1 2 2 2 
YES
1 2 3 1 2 3 1 2 3