#include <bits/stdc++.h>
using namespace std;
template <typename tn>
void read(tn &a) {
  tn x = 0, f = 1;
  char c = ' ';
  for (; !isdigit(c); c = getchar())
    if (c == '-') f = -1;
  for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
  a = x * f;
}
const int N = 101000;
set<int> s1, s2;
int n;
char c[N];
pair<vector<int>, int> solve(char *c) {
  int sum = 0;
  vector<int> ans;
  vector<vector<int> > p, q[4];
  stack<int> s[2];
  for (int i = 0; i < n; i++)
    if (s[c[i] == 'L'].empty()) {
      p.push_back({i});
      s[c[i] == 'R'].push(p.size() - 1);
    } else {
      int k = s[c[i] == 'L'].top();
      p[k].push_back(i);
      s[c[i] == 'L'].pop();
      s[c[i] == 'R'].push(k);
    }
  sum = p.size() - 1;
  for (auto x : p) {
    if (c[x[0]] == 'L') {
      if (c[x.back()] == 'L')
        q[0].push_back(x);
      else
        q[1].push_back(x);
    } else {
      if (c[x.back()] == 'L')
        q[2].push_back(x);
      else
        q[3].push_back(x);
    }
  }
  if (q[0].empty() && q[3].empty()) {
    if (q[1].empty() || q[2].empty()) {
      for (auto x : p)
        for (auto v : x) ans.push_back(v);
      return make_pair(ans, sum);
    } else {
      if (q[1].back().back() < q[2].back().back()) {
        q[0].push_back(q[1].back()), q[1].pop_back();
        q[0][0].push_back(q[2].back().back());
        q[2].back().pop_back();
      } else {
        q[3].push_back(q[2].back()), q[2].pop_back();
        q[3][0].push_back(q[1].back().back());
        q[1].back().pop_back();
      }
    }
  }
  if (q[0].size() < q[3].size()) swap(q[0], q[3]), swap(q[1], q[2]);
  for (auto x : q[1])
    for (auto v : x) ans.push_back(v);
  for (auto v : q[0].back()) ans.push_back(v);
  q[0].pop_back();
  for (auto x : q[2])
    for (auto v : x) ans.push_back(v);
  int now = 3;
  while (q[now].size()) {
    for (auto v : q[now].back()) ans.push_back(v);
    q[now].pop_back();
    now ^= 3;
  }
  return make_pair(ans, sum);
}
int main() {
  cin >> c;
  n = strlen(c);
  auto ans = solve(c);
  cout << ans.second << '\n';
  for (int x : ans.first) cout << x + 1 << ' ';
  cout << '\n';
  return 0;
}
