#include <bits/stdc++.h>
using namespace std;
long long n, m;
string s;
int MOD = 1e9 + 7;
vector<int> gr[200002], st[200002];
set<int> myset[26];
int c[200002], dp[200002];
int coun = 0;
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);
  cin >> s;
  n = s.size();
  queue<int> comp, notcomp;
  int j = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '0') {
      if (notcomp.empty()) {
        st[j].push_back(i + 1);
        comp.push(j);
        j++;
      } else {
        int k = notcomp.front();
        notcomp.pop();
        st[k].push_back(i + 1);
        comp.push(k);
      }
    } else {
      if (comp.empty()) return cout << -1, 0;
      int k = comp.front();
      comp.pop();
      st[k].push_back(i + 1);
      notcomp.push(k);
    }
  }
  if (!notcomp.empty()) return cout << -1, 0;
  cout << j << endl;
  for (int i = 0; i < j; i++) {
    cout << st[i].size() << ' ';
    for (int x : st[i]) {
      cout << x << ' ';
    }
    cout << endl;
  }
}
