fun main(args: Array<String>) {
    val pw = java.io.PrintWriter(System.out)
    Problem.solve(java.util.Scanner(System.`in`), pw)
    pw.flush()
}

object Problem {
    fun sum(N: Int, C: Int, S: BooleanArray): IntArray {
        val L = IntArray(N)
        var n = 0
        var i = 0
        while (i < N) {
            if (S[i]) {
                n++
                for (j in 0 until C) {
                    L[i] = n
                    i++
                    if (i >= N - 1) return L
                }
            }
            L[i] = n
            i++
        }
        return L
    }

    fun solve(sc: java.util.Scanner, pw: java.io.PrintWriter) {
        val N = sc.next().toInt()
        val K = sc.next().toInt()
        val C = sc.next().toInt()
        val S = sc.next().map { it == 'o' }

        val L = sum(N, C, S.toBooleanArray())
        val R = sum(N, C, S.reversed().toBooleanArray()).reversed().toIntArray()

        for (i in 0 until N) {
            val l = if (i > 0) L[i - 1] else 0
            val r = if (i + 1 < N) R[i + 1] else 0
            if (l + r < K) {
                pw.println(i + 1)
            }
        }
    }
}
