#include <bits/stdc++.h>
using namespace std;
int n, cnt;
char s[100007];
vector<int> l[100007], st[2], k[2][2];
int print(int x) {
  for (int i = 0, lim = l[x].size(); i < lim; i++) printf("%d ", l[x][i]);
  return 0;
}
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int i = 1; i <= n; i++) {
    int j = (s[i] == 'R');
    if (st[j ^ 1].empty()) st[j ^ 1].push_back(++cnt);
    int p = st[j ^ 1].back();
    st[j ^ 1].pop_back();
    st[j].push_back(p);
    l[p].push_back(i);
  }
  for (int i = 1; i <= cnt; i++)
    k[l[i].size() & 1][s[l[i].back()] == 'R'].push_back(i);
  if (k[1][0].empty() && k[1][0].empty() && !k[0][0].empty() &&
      !k[0][1].empty()) {
    int a = k[0][0].back(), b = k[0][1].back();
    k[0][0].pop_back();
    k[0][1].pop_back();
    if (l[a].back() < l[b].back())
      l[a].push_back(l[b].back()), l[b].pop_back();
    else
      l[b].push_back(l[a].back()), l[a].pop_back();
    k[1][0].push_back(b);
    k[1][1].push_back(a);
  }
  int p = (k[1][0].size() == k[1][1].size() ? k[0][0].size() > k[0][1].size()
                                            : k[1][1].size() > k[1][0].size());
  cout << cnt - 1 << endl;
  while (!k[0][p ^ 1].empty())
    print(k[0][p ^ 1].back()), k[0][p ^ 1].pop_back();
  while (!k[1][p].empty()) {
    print(k[1][p].back()), k[1][p].pop_back();
    while (!k[0][p].empty()) print(k[0][p].back()), k[0][p].pop_back();
    p ^= 1;
  }
  return 0;
}
