module Main where

import           Control.Monad
import           Debug.Trace
import qualified Data.Vector.Unboxed           as VU
import           Data.List
import qualified Data.ByteString               as BS
import qualified Data.ByteString.Char8         as BSC8
import           Data.Char
import           Data.Maybe
import qualified Data.Text as T

tuplify2 (x : y : _) = (x, y)
tuplify2 _           = undefined

getVUIntFromInputLineAtBSC8 :: IO (VU.Vector Int)
getVUIntFromInputLineAtBSC8 =
    VU.unfoldr (BSC8.readInt . BSC8.dropWhile isSpace) <$> BSC8.getLine
getVUIntListFromInputLineAtBSC8 =
    VU.unfoldr (BSC8.readInt . BSC8.dropWhile isSpace) <$> BSC8.getLine

readInt = fst . fromJust . BSC8.readInt
readIntTuple = tuplify2 . map readInt . BSC8.words
readIntList = map readInt . BSC8.words

getInt = readInt <$> BSC8.getLine
getIntList = readIntList <$> BSC8.getLine
getIntNList n = map readIntList <$> replicateM (fromIntegral n) BSC8.getLine
getIntMatrix = map readIntList . BSC8.lines <$> BS.getContents
getIntTuple = readIntTuple <$> BSC8.getLine
getIntNTuples n = map readIntTuple <$> replicateM (fromIntegral n) BSC8.getLine
getIntTuples = map readIntTuple . BSC8.lines <$> BSC8.getContents

main :: IO [()]
main = do

    [aN,aK,aC] <- getIntList
    aS<-getLine
    let maru = 'o'
    let batu = 'x'
    let hi = foldl (\acc x-> if (aS!!(x-1))==maru then acc++[x] else acc) [] [1..length aS]
    let aaa = foldl (\acc x->if (getPattern ((take (x-1) hi)++(drop x hi)) aK aC) then acc else acc ++[hi !! (x-1)]) [] [1..length hi]
    mapM print aaa


getPattern::[Int]->Int->Int->Bool
getPattern  _ 0 _= True
getPattern [] _ _ = False
getPattern  hi@(hiX:hiXs) k c = 
    getPattern (filter ((hiX+c)<) hiXs) (k-1) c


