#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 10;
string grid;
int main() {
  int n, a, b, k;
  cin >> n >> a >> b >> k;
  cin >> grid;
  string str(grid);
  int ar = a, r = -1;
  vector<int> R2L;
  for (int pas = 0, i = 0; i < n; ++i) {
    if (str[i] == '0') {
      ++pas;
      if (pas == b && ar > 0) {
        r = i;
        --ar;
        pas = 0;
      }
    } else {
      pas = 0;
    }
  }
  for (int pas = 0, i = n - 1; i >= 0; --i) {
    if (str[i] == '0') {
      ++pas;
      if (pas == b) {
        pas = 0;
        R2L.push_back(i);
        if (i <= r) break;
      }
    } else {
      pas = 0;
    }
  }
  str = grid;
  ar = a;
  int l = n;
  vector<int> L2R;
  for (int pas = 0, i = n - 1; i >= 0; --i) {
    if (str[i] == '0') {
      ++pas;
      if (pas == b && ar > 0) {
        l = i;
        --ar;
        pas = 0;
      }
    } else {
      pas = 0;
    }
  }
  for (int pas = 0, i = 0; i <= n; ++i) {
    if (str[i] == '0') {
      ++pas;
      if (pas == b) {
        pas = 0;
        L2R.push_back(i);
        if (i >= l) break;
      }
    } else {
      pas = 0;
    }
  }
  decltype(L2R) *ptr = nullptr;
  if (L2R.size() < R2L.size()) {
    ptr = &L2R;
  } else {
    ptr = &R2L;
  }
  cout << ptr->size() << '\n';
  for (auto x : *ptr) {
    cout << x + 1 << ' ';
  }
  cout << '\n';
  return 0;
}
