#include "bits/stdc++.h"
using namespace std;

// M A F I A - M A F I A - M A F I A - M A F I A - M A F I A - M A F I A //

#define int                                       long long
#define lop(i,s,e)                                for(int i=s;i<(int)e;i++)
#define rlop(i,e,s)                               for(int i=e;i>=s;i--)
#define prvec(v)                                  lop(R15,0,v.size())cout << v[R15] <<" "; cout << endl;
#define prarr(arr,s1,e1)                          lop(R15,s1,e1)cout << arr[R15] << " "; cout << endl;

#define endl                                      '\n'
#define ff                                        first
#define ss                                        second
#define pii                                       pair<int,int>

#define pb                                        push_back
#define all(v)                                    v.begin(),v.end()         

#define bug(...)                                  __f (#__VA_ARGS__, __VA_ARGS__)
#define rtn                                       if(0)return;
template <typename Arg1>
void __f (const char* name, Arg1&& arg1) { rtn cout << name << " : " << arg1 << endl; }
template <typename Arg1, typename... Args>
void __f (const char* names, Arg1&& arg1, Args&&... args)
{     rtn 
     const char* comma = strchr (names + 1, ',');
     cout.write (names, comma - names) << " : " << arg1 << " | "; __f (comma + 1, args...);
}

// M A F I A - M A F I A - M A F I A - M A F I A - M A F I A - M A F I A //

inline void INP();
const int N = 3e6 + 7, M = 1000000007, inf = INT_MAX;
const long long INF = LLONG_MAX;

int n, Q;
int arr[N+2];
int pref[N], suf[N], vs[N], vf[N];

// 16 4 3
// ooxxoxoxxxoxoxxo


void solve()
{
      int k, c;
      cin >> n >> k >> c;
      string str; cin >> str;

      int i = 1;
      while(i <= n)
      {
            int val = (str[i-1] == 'x')?0:1;
            // bug(i,val);
            if(val)
            {     
                  vf[i] = 1;
                  pref[i]++;
                  // bug(i, pref[i]);
                  i += c+1;
            }
            else i++;
      }

      i = n;
      while(i>0)
      {
            int val = (str[i-1] == 'x')?0:1;
            
            if(val)
            {           
                  // bug(i, suf[i]);
                  vs[i] = 1;
                  suf[i]++;
                  i -= c+1;
            }
            else i--;
      }

      // lop(i,1,n+1) if(!pref[i]) pref[i] = pref[i-1]; 
      // rlop(i,n,1) if(!suf[i]) suf[i] = suf[i+1];
      
      lop(i,1,n+1) pref[i] += pref[i-1];
      rlop(i,n,1) suf[i] += suf[i+1];


      // lop(i,1,n+1) cout<< setw(2) << i <<  " " ; cout << endl;
      // lop(i,1,n+1) cout << setw(2) << pref[i] << " "; cout << endl;
      // lop(i,1,n+1) cout << setw(2) << suf[i] << " "; cout << endl;
      // lop(i,1,n+1) cout << setw(2) << vf[i] << " "; cout << endl;
      // lop(i,1,n+1) cout << setw(2) << vs[i] << " "; cout << endl;

      lop(i,1,n+1)
      {
            if(vf[i] and vs[i] )
            {     
                  // bug(i, pref[i-1], suf[i+1]);
                  if ( pref[i-1] + suf[i+1] < k) cout << i << endl;
            }
      }
      return;




}

int32_t main()
{
      ios_base::sync_with_stdio(0);   cin.tie(0);   cout.tie(0);

      int test = 1;
      // cin >> test;

      // cout << setprecision(9) << fixed;
      // clock_t z = clock();
      while(test--)solve();
      // cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC);
}











inline void INP()
{
      #ifndef ONLINE_JUDGE
          freopen("input.txt",  "r",  stdin);
          freopen("output.txt", "w", stdout);
      #endif
}


// M A F I A - M A F I A - M A F I A - M A F I A - M A F I A - M A F I A //






Measured memory_bytes: 15636