func_code_string: #include <bits/stdc++.h>   using namespace std;   int stak1[200010], tot1, stak0[200010], tot0;   int pre[200010], nex[200010];   char s[200010];   int a[200010];   int n, ans;   int stak_ans[200010], tot_ans;   int main() {     int i, j, k;     scanf( %s , s);     n = strlen(s);     for (i = 0; i < n; i++) a[i + 1] = s[i] ==  1  ? 1 : 0;     for (i = 1; i <= n; i++)       if (a[i]) {         if (!tot0) {           printf( -1 n );           return 0;         }         nex[stak0[tot0]] = i;         pre[i] = stak0[tot0];         tot0--;         stak1[++tot1] = i;       } else {         if (tot1) {           nex[stak1[tot1]] = i;           pre[i] = stak1[tot1];           tot1--;         }         stak0[++tot0] = i;       }     if (tot1) {       printf( -1 n );       return 0;     }     for (i = 1; i <= n; i++)       if (!pre[i]) ans++;     printf( %d n , ans);     for (i = 1; i <= n; i++)       if (!pre[i]) {         j = i, tot_ans = 0;         while (j) {           stak_ans[++tot_ans] = j;           j = nex[j];         }         printf( %d  , tot_ans);         for (j = 1; j <= tot_ans; j++) printf( %d  , stak_ans[j]);         printf(  n );       }     return 0;   }   