#abc146f. [abc146_f]Sugoroku

[abc146_f]Sugoroku

問題文

高橋君は双六で遊んでいます。

この双六には 00 から NN までの番号がついた N+1N + 1 個のマスがあります。高橋君はマス 00 からスタートし、ゴールするにはマス NN にちょうど止まらなければなりません。

この双六では、11 から MM までの MM 種類の目が出るルーレットを使います。各手番で、高橋君はルーレットを回して出た目の数だけ進みます。この結果マス NN を越えて進むことになる場合、ゲームオーバーとなります。

また、いくつかのマスは「ゲームオーバーマス」であり、それらのマスに止まってもゲームオーバーとなります。マスの情報は長さ N+1N + 1 の文字列 SS で与えられます。各 ii (0leqileqN)(0 \\leq i \\leq N) について、S\[i\] = 1 のときマス ii はゲームオーバーマスであり、S\[i\] = 0 のときマス ii はゲームオーバーマスではありません。

高橋君がゲームオーバーとならずに最短手数でゴールするときの出目を順に答えてください。そのような目の出方が複数存在するときは、そのうち出目の列が辞書順で最小であるものを出力してください。ゲームオーバーとならずにゴールすることが不可能である場合は、 \-1\-1 を出力してください。

制約

  • 1N1051 ≤ N ≤ 10^5
  • 1M1051 ≤ M ≤ 10^5
  • S=N+1|S| = N + 1
  • SS01から成る
  • S\[0\] = 0
  • S\[N\] = 0

入力

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

NN MM SS

出力

ゴールすることが可能である場合、そのような最短の出目の列のうち辞書順で最小のものを出力せよ。ゴールすることが不可能である場合、\-1\-1 を出力せよ。


入力例 1

9 3
0001000100

出力例 1

1 3 2 3

11 , 33 , 22 , 33 の順に目を出すと、高橋君はマス 11 , 44 , 66 を経由してマス 99 に到達することが出来ます。高橋君が 33 手以内にマス 99 に到達することは不可能であり、また 44 手でマス 99 に到達するような出目の列の中ではこれが辞書順で最小です。


入力例 2

5 4
011110

出力例 2

-1

高橋君はマス 55 に到達することが出来ません。


入力例 3

6 6
0101010

出力例 3

6