import Control.Monad
import Data.List
import Data.Maybe

earliest :: Int -> Int -> Int -> String -> Maybe [Int]
earliest i k c [] = Just []
earliest i k c (s:ss)
  | k > 0 =
    case s of 
      'o' -> if failure 
          then Nothing 
          else  do
             z <- earliest (i + c + 1) (k - 1) c nextStr
             return $ i : z
      'x' -> earliest (i + 1) k c ss
  | otherwise =
    Just []
  where 
    nextStr = drop c ss
    failure = nextStr == [] && k > 1

latest :: Int -> Int -> Int -> String -> Maybe [Int]
latest i k c s = getLatest (earliest i k c $ reverse s)
  where 
    getLatest :: Maybe [Int] -> Maybe [Int]
    getLatest (Just ear) = Just $ reverse $ map (length s  + 1 -) ear
    getLatest Nothing = Nothing

solve :: Int -> Int -> Int -> String -> Maybe [Int]
solve n k c s = do
      ear <- earliest 1 k c s
      lat <- latest 1 k c s
      return $ getWorkingDays ear lat
  where 
    getWorkingDays [] _ = []
    getWorkingDays  _ [] = []
    getWorkingDays (e:es) (l:ls) = if (e == l) then e : getWorkingDays es ls else getWorkingDays es ls

main = do
  (n:k:c:_) <- (map read . words) <$> getLine
  s <- getLine
  maybe (putStr "") (putStr . intercalate "\n" . map show) (solve n k c s)
