-- https://github.com/minoki/my-atcoder-solutions
{-# LANGUAGE BangPatterns #-}
import Data.Char (isSpace)
import Data.List
import Control.Monad
import qualified Data.Vector.Unboxed as U
import qualified Data.Vector.Unboxed.Mutable as UM
import qualified Data.ByteString.Char8 as BS
import qualified Data.ByteString.Builder as BSB
import System.IO
import Data.Monoid

main = do
  [n,m] <- unfoldr (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine
  s <- BS.getLine
  let v1 :: U.Vector Int
      v1 = U.create $ do
        v <- UM.replicate (n+1) (10^6)
        UM.write v 0 0
        forM_ [1..n] $ \i -> do
          when (BS.index s i == '0') $ do
            let loop !acc !j | j == i = return acc
                             | otherwise = do
                                 v <- (+1) <$> UM.read v j
                                 loop (min acc v) (j+1)
            x <- loop (10^6) (max 0 (i-m))
            UM.write v i x
        return v
      v2 :: U.Vector Bool
      v2 = U.create $ do
        v <- UM.replicate (n+1) False
        UM.write v n True
        forM_ [n-1,n-2..0] $ \i -> do
          when (BS.index s i == '0') $ do
            let !t = min (i+m) n
            let loop j | j > t = return False
                       | v1 U.! i + 1 /= v1 U.! j = loop (j+1)
                       | otherwise = do
                           u <- UM.read v j
                           if u then return True else loop (j+1)
            reachable <- loop (i+1)
            {-
            reachable <- or <$> (forM [i+1..min (i+m) n] $ \j -> do
                                    ( &&) <$> UM.read v j
                                )
            -}
            UM.write v i reachable
        return v
      go w | U.null w = []
           | otherwise = case U.head w of
                           (i,True) -> let (t,w') = U.span (\(x,y) -> not y || x == i) w
                                       in if U.null w' then [U.length t] else U.length t : go w'
  if U.last v1 > 10^5 then
    print (-1)
  else do
    BSB.hPutBuilder stdout $ (mconcat $ intersperse (BSB.char7 ' ') $ map BSB.intDec $ init $ go (U.zip v1 v2)) <> BSB.char7 '\n'
