import std.stdio, std.conv, std.string, std.algorithm, std.math, std.array, std.container;

int n, k, c;

bool[] solve() {
  scanf("%d %d %d\n", &n, &k, &c);
  string s = readln.chomp;
  bool[] banned = s.map!(c => c=='x').array;
  int[] l = new int[k];
  int k_cnt = 0;
  for(int i=0; i<n; i++) {
    if(!banned[i]) {
      l[k_cnt] = i;
      i += c;
      if(++k_cnt == k) break;
    }
  }
  if(k_cnt < k) return new bool[n];
  int[] r = new int[k];
  k_cnt = k;
  for(int i=n-1; i>=0; i--) {
    if(!banned[i]) {
      r[--k_cnt] = i;
      i -= c;
      if(k_cnt == 0) break;
    }
  }
  bool[] result = new bool[n];
  for(int i=0; i<l.length; i++) {
    result[l[i]] = l[i]==r[i];
  }
  return result;
}

void main() {
  auto res = solve();
  for(int i=0; i<res.length; i++) {
    if(res[i]) writeln(i+1);
  }
}

