n, k, c = list(map(int, input().split()))

S = list(eval(input()))





def f(S):

    L = []

    on = True

    cnt = 0

    for i in range(n):

        if not on:

            if cnt == c:

                on = True

            cnt += 1

        if on and S[i] == 'o':

            on = False

            cnt = 0

            L.append(i)

            if len(L) == k:

                break

    return L





L = f(S)

R = [n-1-i for i in f(S[::-1])][::-1]

for i in range(k):

    if L[i] == R[i]:

        print((L[i]+1))

def work(S, k, c):

    tir = 0

    cnt = 0

    for i, s in enumerate(S):

        if s == 'o' and tir == 0 and cnt < k:

            yield i

            tir = c

            cnt += 1

        else:

            tir = max(tir-1, 0)





n, k, c = list(map(int, input().split()))

S = list(eval(input()))

L = [i+1 for i in work(S, k, c)]

R = [n-i for i in work(S[::-1], k, c)][::-1]

for l, r in zip(L, R):

    if l == r:

        print(l)

n, k, c = list(map(int, input().split()))
S = list(eval(input()))


def f(S):
    L = []
    on = True
    cnt = 0
    for i in range(n):
        if not on:
            if cnt == c:
                on = True
            cnt += 1
        if on and S[i] == "o":
            on = False
            cnt = 0
            L.append(i)
            if len(L) == k:
                break
    return L


L = f(S)
R = [n - 1 - i for i in f(S[::-1])][::-1]
for i in range(k):
    if L[i] == R[i]:
        print((L[i] + 1))

def work(S, k, c):
    tir = 0
    cnt = 0
    for i, s in enumerate(S):
        if s == "o" and tir == 0 and cnt < k:
            yield i
            tir = c
            cnt += 1
        else:
            tir = max(tir - 1, 0)


n, k, c = list(map(int, input().split()))
S = list(eval(input()))
L = [i + 1 for i in work(S, k, c)]
R = [n - i for i in work(S[::-1], k, c)][::-1]
for l, r in zip(L, R):
    if l == r:
        print(l)

+def work(S, k, c): +    tir = 0 +    cnt = 0 +    for i, s in enumerate(S): +        if s == "o" and tir == 0 and cnt < k: +            yield i +            tir = c +            cnt += 1 +        else: +            tir = max(tir - 1, 0) + + - - -def f(S): -    L = [] -    on = True -    cnt = 0 -    for i in range(n): -        if not on: -            if cnt == c: -                on = True -            cnt += 1 -        if on and S[i] == "o": -            on = False -            cnt = 0 -            L.append(i) -            if len(L) == k: -                break -    return L - - -L = f(S) -R = [n - 1 - i for i in f(S[::-1])][::-1] -for i in range(k): -    if L[i] == R[i]: -        print((L[i] + 1)) +L = [i + 1 for i in work(S, k, c)] +R = [n - i for i in work(S[::-1], k, c)][::-1] +for l, r in zip(L, R): +    if l == r: +        print(l)