Tim は忙しいビーバーで、体育の単位を取得するためにピストル射撃のクラスに登録し、エリート射撃手を目指しています。MIT の射撃場には $1$ から $N$ ($1 \le N \le 3 \cdot 10^5$) までの番号が振られた $N$ 個のレーンがあります。レーン $i$ には現在 $A_i$ ($0 \le A_i \le 5 \cdot 10^5$) 個の標的が一列に並んでいます。射撃場全体には少なくとも $1$ つの標的があることが保証されています。
Tim の練習用銃には弾丸が無限にあり、すべての標的を撃ち落とす必要があります。各射撃の前に、Tim はレーンを $1$ つ選び、そのレーンに向けて $1$ 発撃ちます。標的は一度当たると撃ち落とされ、二度と戻ってくることはありません。
しかし、Tim の狙いはひどいもので、奇数番目の射撃はすべてそのレーンの最初の標的に当たり、偶数番目の射撃はすべてそのレーンの最初の標的を外し、(もし存在すれば) 2 番目の標的に当たります。最初の射撃は $1$ 番目の射撃です。
Tim は、標的に当たらない射撃を行うことは許されていません。なぜなら、標的の後ろにある壁を傷つけてしまうからです。すべての標的を撃ち落とす射撃の順序を見つけるか、そのような順序が存在しないことを報告してください。
入力
各テストには複数のテストケースが含まれます。最初の行にはテストケースの数 $t$ ($1 \le t \le 1000$) が含まれます。続いて各テストケースの説明が続きます。
各テストケースは $2$ 行から構成されます。最初の行にはレーンの数 $N$ が含まれます。2 行目には各レーンの標的の数を示す $N$ 個の整数 $A_1, A_2, \dots, A_n$ がスペース区切りで含まれます。
すべてのテストケースにおける $A_i$ の合計は $5 \cdot 10^5$ を超えないことが保証されています。 すべてのテストケースにおける $N$ の合計は $3 \cdot 10^5$ を超えないことが保証されています。
出力
各テストケースについて、すべての標的を撃ち落とす射撃順序が存在する場合は "YES" を、存在しない場合は "NO" を出力してください。答えは大文字・小文字を区別しません(例: "yEs", "yes", "Yes", "YES" はすべて正解として扱われます)。
$A$ をテストケース内の $A_i$ の合計とします($A$ はテストケースごとに異なる場合があります)。そのような順序が存在する場合、次の行に $A$ 個のスペース区切りの整数 $l_1, l_2, \dots, l_A$ を出力してください。ここで $l_i$ は $i$ 番目の射撃で Wabbit が狙うべきレーンです。複数の解が存在する場合は、そのうちのいずれかを出力してください。
小課題
各小課題において、YES/NO の判定が正しく、かつ $l_i$ の値が正しくない場合、その小課題の点数の 50% を獲得できます。部分点を得るためには、各テストケースに対して正確に $A$ 個の $l_i$ を出力する必要があります。
- (30 点): すべてのテストケースにおける $N$ の合計が 2000 を超えず、かつすべてのテストケースにおける $A_i$ の合計が 2000 を超えない。
- (70 点): 追加の制約はない。
入出力例
入力 1
3 1 3 1 2 5 1 1 1 1 1
出力 1
YES 1 1 1 NO NO
注記
最初のテストケースでは、3 つの標的があるレーンが 1 つだけあり、Wabbit はレーン 1 に 3 回射撃することで全ての標的を撃ち落とすことができます。標的が前から順に A, B, C である場合、1 回目の射撃で A が撃ち落とされ、2 回目の射撃で B を外して C が撃ち落とされ、最後の射撃で B が撃ち落とされます。
2 番目のテストケースでは、2 つの標的があるレーンが 1 つだけあります。レーン 1 への 1 回目の射撃は手前の標的に当たりますが、2 回目の射撃は外れてしまうため、残りの標的を撃ち落とすことはできません。したがって、このテストケースには射撃順序は存在しません。
3 番目のテストケースでは、1 つの標的があるレーンが 5 つあります。どのレーンに対しても 1 回目の射撃はそのレーンの標的に当たりますが、2 回目の射撃では他の標的に当てることができません。したがって、このテストケースには射撃順序は存在しません。