N, K, C = list(map(int, input().split()))

S = eval(input())



latest = [None]*K

i = len(S)+C

for j in range(K-1, -1, -1):

  i = S.rindex("o", 0, i-C)

  latest[j] = i



if i<=C or "o" not in S[:i-C]:

  i = -C-1

  for j in latest:

    i = S.index("o", i+C+1)

    if i == j:

      print((i+1))

def solve():

  N, K, C = list(map(int, input().split()))

  workable = [i for i, s in enumerate(eval(input())) if s=="o"]

  if len(workable) == K:

    return workable

    

  prev = workable[-1]

  latest = {prev}

  i = len(workable)-1

  while i > 0:

    i -= 1

    if prev - workable[i] > C:

      latest.add(workable[i])

      prev = workable[i]

      if len(latest) > K:

        return []

  must = []

  i = -1

  prev = -C-1

  while i < len(workable)-1:

    i += 1

    if workable[i] - prev > C:

      if workable[i] in latest:

        must.append(workable[i])

      prev = workable[i]

  return must



for i in solve():

  print((i+1))
N, K, C = list(map(int, input().split()))
S = eval(input())
latest = [None] * K
i = len(S) + C
for j in range(K - 1, -1, -1):
    i = S.rindex("o", 0, i - C)
    latest[j] = i
if i <= C or "o" not in S[: i - C]:
    i = -C - 1
    for j in latest:
        i = S.index("o", i + C + 1)
        if i == j:
            print((i + 1))

def solve():
    N, K, C = list(map(int, input().split()))
    workable = [i for i, s in enumerate(eval(input())) if s == "o"]
    if len(workable) == K:
        return workable
    prev = workable[-1]
    latest = {prev}
    i = len(workable) - 1
    while i > 0:
        i -= 1
        if prev - workable[i] > C:
            latest.add(workable[i])
            prev = workable[i]
            if len(latest) > K:
                return []
    must = []
    i = -1
    prev = -C - 1
    while i < len(workable) - 1:
        i += 1
        if workable[i] - prev > C:
            if workable[i] in latest:
                must.append(workable[i])
            prev = workable[i]
    return must


for i in solve():
    print((i + 1))

-N, K, C = list(map(int, input().split())) -S = eval(input()) -latest = [None] * K -i = len(S) + C -for j in range(K - 1, -1, -1): -    i = S.rindex("o", 0, i - C) -    latest[j] = i -if i <= C or "o" not in S[: i - C]: -    i = -C - 1 -    for j in latest: -        i = S.index("o", i + C + 1) -        if i == j: -            print((i + 1)) +def solve(): +    N, K, C = list(map(int, input().split())) +    workable = [i for i, s in enumerate(eval(input())) if s == "o"] +    if len(workable) == K: +        return workable +    prev = workable[-1] +    latest = {prev} +    i = len(workable) - 1 +    while i > 0: +        i -= 1 +        if prev - workable[i] > C: +            latest.add(workable[i]) +            prev = workable[i] +            if len(latest) > K: +                return [] +    must = [] +    i = -1 +    prev = -C - 1 +    while i < len(workable) - 1: +        i += 1 +        if workable[i] - prev > C: +            if workable[i] in latest: +                must.append(workable[i]) +            prev = workable[i] +    return must + + +for i in solve(): +    print((i + 1))