func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 200500;   int mapp[maxn], num[maxn], ans[maxn];   int main() {     int n, a, b, k;     while (cin >> n >> a >> b >> k) {       memset(ans, 0, sizeof(ans));       char c;       for (int i = 0; i < n; i++) {         cin >> c;         mapp[i] = c -  0 ;       }       int len = 0, pos = 0, tk = a;       int sum, sum2 = 0;       for (int i = 0; i < n; i++) {         if (0 == mapp[i]) len++;         if (1 == mapp[i] || i == n - 1) {           num[pos++] = len;           int kk = len / b;           if (kk <= tk)             tk -= kk;           else {             if (i == n - 1 && !mapp[i]) i++;             for (int j = tk + 1; j <= kk; j++) {               ans[i - len - 1 + j * b] = 1;               sum2++;             }             tk = 0;           }           len = 0;         }       }       sum = 1;       len = 0;       for (int i = 0; i < n; i++) {         if (0 == mapp[i]) len++;         if ((1 == mapp[i] || i == n - 1) && sum > 0) {           if (i == n - 1 && !mapp[i]) i++;           int kk = len / b;           for (int j = 1; j <= kk; j++) {             sum--;             if (!ans[i - len - 1 + j * b]) sum2++;             ans[i - len - 1 + j * b] = 1;             if (sum <= 0) break;           }           len = 0;         }       }       cout << sum2 << endl;       int flag = 0;       for (int i = 0; i < n; i++) {         if (!ans[i]) continue;         if (!flag)           flag = 1;         else           cout <<    ;         cout << i + 1;       }       cout << endl;     }   }   