#include <bits/stdc++.h>
using namespace std;
int chh;
const int N = 200005;
struct Node {
  int d, l, r;
  Node() {}
  Node(int D, int L, int R) : d(D), l(L), r(R) {}
  bool operator<(const Node& arg) const { return d < arg.d; }
};
int n, a, b, k;
char s[N];
queue<Node> q;
vector<int> res;
int main() {
  int p, tmp, ans, d, l, r;
  while (~scanf("%d %d %d %d", &n, &a, &b, &k)) {
    scanf("%s", s);
    while (!q.empty()) q.pop();
    p = 0, tmp = 0;
    for (int i = 0; i < (n); i++) {
      if (s[i] == '0') continue;
      q.push(Node(i - p, p, i - 1));
      tmp += (i - p) / b;
      p = i + 1;
    }
    if (p < n) {
      q.push(Node(n - p, p, n - 1));
      tmp += (n - p) / b;
    }
    ans = tmp - a + 1, p = ans;
    res.clear();
    while (p) {
      d = q.front().d;
      l = q.front().l;
      r = q.front().r;
      q.pop();
      if (d < b) continue;
      p--;
      q.push(Node(d - b, l + b, r));
      res.push_back(l + b - 1);
    }
    printf("%d\n", ans);
    for (__typeof__((res).begin()) it = (res).begin(); it != (res).end(); it++)
      printf("%d ", *it + 1);
    puts("");
  }
  return 0;
}
