#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  string s;
  cin >> s;
  vector<vector<int> > ans;
  set<int> ons, zer;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '0') {
      zer.insert(i);
    } else {
      ons.insert(i);
    }
  }
  while (ons.size() > 0 || zer.size() > 0) {
    vector<int> res;
    int n;
    set<int>::iterator l = zer.begin(), r = ons.begin();
    bool f = false;
    while ((!f && l != zer.end()) || (f && r != ons.end())) {
      if (!f) {
        res.push_back(*l);
        n = *l;
        zer.erase(n);
        r = ons.lower_bound(n);
      } else {
        res.push_back(*r);
        n = *r;
        ons.erase(n);
        l = zer.lower_bound(n);
      }
      f = !f;
    }
    if (!res.empty()) {
      if (res.size() % 2 == 0) {
        res.pop_back();
        ons.insert(n);
      }
      ans.push_back(res);
    } else {
      cout << -1;
      return 0;
    }
  }
  cout << ans.size() << '\n';
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i].size() << ' ';
    for (int j = 0; j < ans[i].size(); j++) {
      cout << ans[i][j] + 1 << ' ';
    }
    cout << '\n';
  }
}
