#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using DD = long double;
using pii = pair<int, int>;
const LL INFLL = 0x7f7f7f7f7f7f7f7fLL;
const int INFint = 0x7f7f7f7f;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.precision(16);
  int n, nships, shiplen, k;
  cin >> n >> nships >> shiplen >> k;
  string hits;
  cin >> hits;
  vector<pii> spans;
  int start = 0;
  for (int i = 0; i < int((int((hits).size()))); ++i) {
    if ('1' == hits[i]) {
      if (i - start >= shiplen) {
        spans.push_back(make_pair(i - start, start));
      }
      start = i + 1;
      continue;
    }
  }
  if (n - start >= shiplen) spans.push_back(make_pair(n - start, start));
  int could_be_total = 0;
  for (int i = 0; i < int((int((spans).size()))); ++i) {
    could_be_total += spans[i].first / shiplen;
  }
  vector<int> rr;
  int remaining = could_be_total;
  for (int i = 0; i < int((int((spans).size()))); ++i) {
    int here = spans[i].first / shiplen;
    for (int x = 0; x < int(here); ++x) {
      --remaining;
      rr.push_back(spans[i].second + (x + 1) * shiplen - 1);
      if (remaining < nships) break;
    }
    if (remaining < nships) break;
  }
  cout << (int((rr).size())) << '\n';
  for (int i = 0; i < int((int((rr).size()))); ++i) {
    if (i > 0) cout << ' ';
    cout << rr[i] + 1;
  }
  cout << '\n';
  return 0;
}
