#include <bits/stdc++.h>
const long long LINF = 1e18;
const int INF = 1e9;
const int M = 1e9 + 7;
const double EPS = 1e-9;
using namespace std;
set<int> pos0;
set<int> pos1;
bool used[200200] = {0};
int main(int argc, const char* argv[]) {
  std::ios_base::sync_with_stdio(0);
  string s;
  cin >> s;
  int n = s.size();
  for (int i = 0; i < (int)(n); i++) {
    if (s[i] == '0')
      pos0.insert(i);
    else
      pos1.insert(i);
  }
  vector<vector<int> > ans;
  for (int i = 0; i < (int)(n); i++) {
    if (!used[i] && s[i] == '1') {
      cout << -1;
      return 0;
    } else if (!used[i]) {
      used[i] = 1;
      vector<int> temp;
      ans.push_back(temp);
      int j = ans.size() - 1;
      ans[j].push_back(i);
      auto bin1 = pos1.upper_bound(i);
      int unit = *bin1;
      auto bin2 = pos0.upper_bound(unit);
      int zero = *bin2;
      if (bin1 == pos1.end() || bin2 == pos0.end())
        continue;
      else {
        ans[j].push_back(unit);
        ans[j].push_back(zero);
        pos1.erase(bin1);
        pos0.erase(bin2);
        used[unit] = 1;
        used[zero] = 1;
      }
      while (bin1 != pos1.end() && bin2 != pos0.end()) {
        bin1 = pos1.upper_bound(zero);
        unit = *bin1;
        if (bin1 != pos1.end()) {
          bin2 = pos0.upper_bound(unit);
          zero = *bin2;
          if (bin2 == pos0.end())
            break;
          else {
            ans[j].push_back(unit);
            ans[j].push_back(zero);
            pos1.erase(bin1);
            pos0.erase(bin2);
            used[unit] = 1;
            used[zero] = 1;
          }
        } else
          break;
      }
    }
  }
  for (int i = 0; i < (int)(n); i++) {
    if (!used[i] && s[i] == 0) {
      vector<int> temp;
      temp.push_back(i);
      ans.push_back(temp);
    }
  }
  cout << ans.size() << '\n';
  for (int i = 0; i < (int)(ans.size()); i++) {
    cout << ans[i].size() << ' ';
    for (int j = 0; j < (int)(ans[i].size()); j++) {
      cout << ans[i][j] + 1 << ' ';
    }
    cout << '\n';
  }
  return 0;
}
