#apc001g. [apc001_g]Colorful Doors

[apc001_g]Colorful Doors

問題文

左岸と右岸を繋ぐ橋があります。 橋の上の相異なる 2N2 N 箇所には、それぞれある色のドアが置かれています。 各ドアの色は 11 から NN までの整数で表されます。 各 kk (1leqkleqN1 \\leq k \\leq N) について、色 kk のドアはちょうど 22 個存在します。

すぬけ君は、左岸から右岸へ橋を渡ることにしました。 すぬけ君は常に右へ向かって歩き続けますが、その間に次の現象が起こります。

  • すぬけ君が色 kk (1leqkleqN1 \\leq k \\leq N) のドアに触れた瞬間、すぬけ君は色 kk の他方のドアのすぐ右へワープする。

すぬけ君はいずれ右岸に辿り着くことが示せます。

ii (1leqileq2N11 \\leq i \\leq 2 N - 1) について、左から ii 番目および i+1i + 1 番目のドアに挟まれた区間を、区間 ii と呼ぶことにします。 橋を渡り終えたすぬけ君は、各 ii (1leqileq2N11 \\leq i \\leq 2 N - 1) について、区間 ii を歩いたか否かを記録しました。 この記録が、長さ 2N12 N - 1 の文字列 ss として与えられます。 各 ii (1leqileq2N11 \\leq i \\leq 2 N - 1) について、すぬけ君が区間 ii を歩いたならば、ssii 文字目は 1 であり、そうでないならば、ssii 文字目は 0 です。

図: 入力例 3 に対応するドアの配置の例

記録に矛盾しないようなドアの配置が存在するか判定し、存在するならばひとつ構成してください。

制約

  • 1leqNleq1051 \\leq N \\leq 10^5
  • s=2N1|s| = 2 N - 1
  • ss01 のみからなる。

入力

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

NN ss

出力

記録に矛盾しないようなドアの配置が存在しないならば、No を出力せよ。 存在するならば、11 行目に Yes を出力し、22 行目にドアの配置をひとつ次のフォーマットで出力せよ。 ただし、各 ii (1leqileq2N1 \\leq i \\leq 2 N) について、cic_i は左から ii 番目のドアの色である。

c1c_1 c2c_2 ...... c2Nc_{2 N}


入力例 1

2
010

出力例 1

Yes
1 1 2 2

入力例 2

2
001

出力例 2

No

入力例 3

3
10110

出力例 3

Yes
1 3 2 1 2 3

以下の図は問題文中のものと同様です。


入力例 4

3
10101

出力例 4

No

入力例 5

6
00111011100

出力例 5

Yes
1 6 1 2 3 4 4 2 3 5 6 5