AT_abc146_f [ABC146F] Sugoroku
Description
[problemUrl]: https://atcoder.jp/contests/abc146/tasks/abc146_f
高橋君は双六で遊んでいます。
この双六には $ 0 $ から $ N $ までの番号がついた $ N\ +\ 1 $ 個のマスがあります。高橋君はマス $ 0 $ からスタートし、ゴールするにはマス $ N $ にちょうど止まらなければなりません。
この双六では、$ 1 $ から $ M $ までの $ M $ 種類の目が出るルーレットを使います。各手番で、高橋君はルーレットを回して出た目の数だけ進みます。この結果マス $ N $ を越えて進むことになる場合、ゲームオーバーとなります。
また、いくつかのマスは「ゲームオーバーマス」であり、それらのマスに止まってもゲームオーバーとなります。マスの情報は長さ $ N\ +\ 1 $ の文字列 $ S $ で与えられます。各 $ i $ $ (0\ \leq\ i\ \leq\ N) $ について、$ S[i]\ =\ 1 $ のときマス $ i $ はゲームオーバーマスであり、$ S[i]\ =\ 0 $ のときマス $ i $ はゲームオーバーマスではありません。
高橋君がゲームオーバーとならずに最短手数でゴールするときの出目を順に答えてください。そのような目の出方が複数存在するときは、そのうち出目の列が辞書順で最小であるものを出力してください。ゲームオーバーとならずにゴールすることが不可能である場合は、 $ -1 $ を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ S $
Output Format
ゴールすることが可能である場合、そのような最短の出目の列のうち辞書順で最小のものを出力せよ。ゴールすることが不可能である場合、$ -1 $ を出力せよ。
Explanation/Hint
### 制約
- $ 1\