問題文
整数列 A=(A1,A2,ldots,AN+K−1) (1leqAileqN+K−1) に対して、Bi を Ai,Ai+1,ldots,Ai+K−1 の中の相異なる要素の個数として、列 B=(B1,B2,ldots,BN) を作ります。
B1,B2,ldots,BN が与えられます。この列 B を生成し得た列 A が存在するか判定し、存在する場合はそのような列 A を一つ構成してください。
各入力ファイルについて、T 個のテストケースを解いてください。
制約
- 1leTle5cdot104
- 2leNle2cdot105
- 2leKle2cdot105
- 1leBileK
- 各入力ファイル内の N の総和は 2cdot105 を超えない。
- 各入力ファイル内の K の総和は 2cdot105 を超えない。
- 入力中のすべての値は整数である。
入力
入力は標準入力から以下の形式で与えられる。
T
case1
case2
vdots
caseT
各ケースは以下の形式である。
N K
B1 B2 ldots BN
出力
各テストケースについて、題意を満たす列 A が存在しなければ、NO
と出力せよ。
そうでなければ、答えを次の形式で出力せよ。
YES
A1 A2 ldots AN+K−1
ここで、1leqAileqN+K−1 でなければならず、A は B を生成するものでなければならない。 複数の解が存在する場合は、そのいずれも認められる。
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