#include <bits/stdc++.h>
using namespace std;
int n = 1, m, a, b, ans, v;
const int maxn = 200400;
queue<int> q[maxn];
set<int> z, o;
int main() {
  string s;
  cin >> s;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '0') a++;
    if (s[i] == '1') b++;
    if (a < b) return cout << -1, 0;
  }
  a = 0;
  b = 0;
  for (int i = s.size() - 1; i >= 0; i--) {
    if (s[i] == '0') a++;
    if (s[i] == '1') b++;
    if (a < b) return cout << -1, 0;
  }
  q[0].push(0);
  o.insert(0);
  for (int i = 1; i < s.size(); i++) {
    if (s[i] == '0') {
      if (z.size() == 0) {
        z.insert(n);
        n++;
      }
      v = *z.begin();
      z.erase(v);
      q[v].push(i);
      o.insert(v);
    } else {
      if (o.size() == 0) {
        o.insert(n);
        n++;
      }
      v = *o.begin();
      o.erase(v);
      q[v].push(i);
      z.insert(v);
    }
  }
  cout << n << '\n';
  for (int i = 0; i < n; i++) {
    cout << q[i].size() << ' ';
    while (!q[i].empty()) {
      cout << q[i].front() + 1 << ' ';
      q[i].pop();
    }
    cout << '\n';
  }
  return 0;
}
