func_code_string: #include <bits/stdc++.h>   const int inf = 0x7f7f7f7f;   inline void gettime() { ; }   inline int read() {     static char c;     static int x;     int flag = 1;     while (c = getchar(), !isdigit(c))       if (c ==  - ) flag = -1;     x = c -  0 ;     while (c = getchar(), isdigit(c)) x = (x << 1) + (x << 3) + c -  0 ;     return x * flag;   }   inline char achar() {     static char c;     while (c = getchar(), !isdigit(c))       ;     return c;   }   int n, ones;   char s[200200];   std::queue<int> ns[200200];   std::queue<int> ps[2];   int main() {     scanf( %s , s + 1);     n = strlen(s + 1);     for (int i = 1; i <= n; ++i) ones += s[i] ==  1 ;     int k = (n - ones) - ones;     if (k <= 0) return puts( -1 ), 0;     for (int i = 1; i <= k; ++i) ps[0].push(i);     for (int i = 1; i <= n; ++i) {       int cur = s[i] ==  1 ;       if (ps[cur].empty()) return puts( -1 ), 0;       ns[ps[cur].front()].push(i);       ps[cur ^ 1].push(ps[cur].front());       ps[cur].pop();     }     if (!ps[0].empty()) return puts( -1 ), 0;     printf( %d n , k);     for (int i = 1; i <= k; ++i) {       printf( %d  , ns[i].size());       for (; !ns[i].empty(); ns[i].pop()) printf( %d  , ns[i].front());       printf(  n );     }   }   