#include <bits/stdc++.h>
using namespace std;
vector<int> adj[200050];
set<int> v1, v0;
int ans = 0;
int main() {
  string s;
  cin >> s;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '0') {
      if (v1.empty()) {
        ans++;
        adj[ans].push_back(i + 1);
        v0.insert(ans);
      } else {
        int o = *v1.begin();
        v1.erase(v1.begin());
        adj[o].push_back(i + 1);
        v0.insert(o);
      }
    } else {
      if (v0.empty()) {
        puts("-1");
        return 0;
      } else {
        int o = *v0.begin();
        v0.erase(v0.begin());
        adj[o].push_back(i + 1);
        v1.insert(o);
      }
    }
  }
  if (!v1.empty())
    puts("-1");
  else {
    cout << ans << endl;
    for (int i = 1; i <= ans; i++) {
      cout << adj[i].size() << " ";
      for (auto c : adj[i]) cout << c << " ";
      cout << endl;
    }
  }
  return 0;
}
