atcoder#ABC146F. [ABC146F] Sugoroku

[ABC146F] Sugoroku

Score : 600600 points

Problem Statement

Takahashi is playing a board game called Sugoroku.

On the board, there are N+1N + 1 squares numbered 00 to NN. Takahashi starts at Square 00, and he has to stop exactly at Square NN to win the game.

The game uses a roulette with the MM numbers from 11 to MM. In each turn, Takahashi spins the roulette. If the number xx comes up when he is at Square ss, he moves to Square s+xs+x. If this makes him go beyond Square NN, he loses the game.

Additionally, some of the squares are Game Over Squares. He also loses the game if he stops at one of those squares. You are given a string SS of length N+1N + 1, representing which squares are Game Over Squares. For each ii (0iN)(0 \leq i \leq N), Square ii is a Game Over Square if S[i]=1S[i] = 1 and not if S[i]=0S[i] = 0.

Find the sequence of numbers coming up in the roulette in which Takahashi can win the game in the fewest number of turns possible. If there are multiple such sequences, find the lexicographically smallest such sequence. If Takahashi cannot win the game, print 1-1.

Constraints

  • 1N1051 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • S=N+1|S| = N + 1
  • SS consists of 0 and 1.
  • S[0]=S[0] = 0
  • S[N]=S[N] = 0

Input

Input is given from Standard Input in the following format:

NN MM

SS

Output

If Takahashi can win the game, print the lexicographically smallest sequence among the shortest sequences of numbers coming up in the roulette in which Takahashi can win the game, with spaces in between.

If Takahashi cannot win the game, print 1-1.

9 3
0001000100
1 3 2 3

If the numbers 11, 33, 22, 33 come up in this order, Takahashi can reach Square 99 via Square 11, 44, and 66. He cannot reach Square 99 in three or fewer turns, and this is the lexicographically smallest sequence in which he reaches Square 99 in four turns.

5 4
011110
-1

Takahashi cannot reach Square 55.

6 6
0101010
6