#include <bits/stdc++.h>
using namespace std;
const int MAX = 100005;
vector<int> v[MAX];
set<int> sl, sr;
void pb(vector<int> &a, vector<int> &b) {
  for (int i = 0; i < b.size(); i++) a.push_back(b[i]);
}
int main() {
  ios::sync_with_stdio(false);
  string s;
  cin >> s;
  int n = s.size();
  int t = 0;
  for (int i = 0; i < n; i++)
    if (s[i] == 'L') {
      if (sr.empty()) {
        v[t].push_back(i);
        sl.insert(t++);
      } else {
        int id = *sr.begin();
        v[id].push_back(i);
        sr.erase(id);
        sl.insert(id);
      }
    } else {
      if (sl.empty()) {
        v[t].push_back(i);
        sr.insert(t++);
      } else {
        int id = *sl.begin();
        v[id].push_back(i);
        sl.erase(id);
        sr.insert(id);
      }
    }
  cout << t - 1 << "\n";
  vector<int> ll, lr, rl, rr;
  for (int i = 0; i < t; i++) {
    if (s[v[i][0]] == 'L' && s[v[i].back()] == 'L') ll.push_back(i);
    if (s[v[i][0]] == 'L' && s[v[i].back()] == 'R') lr.push_back(i);
    if (s[v[i][0]] == 'R' && s[v[i].back()] == 'L') rl.push_back(i);
    if (s[v[i][0]] == 'R' && s[v[i].back()] == 'R') rr.push_back(i);
  }
  if (ll.size() < rr.size()) swap(ll, rr);
  for (int i = 0; i < min(ll.size(), rr.size()); i++) {
    pb(v[t], v[ll[i]]);
    pb(v[t], v[rr[i]]);
  }
  if (ll.size() != rr.size()) pb(v[t], v[ll.back()]);
  bool f = false;
  if (!v[t].empty()) {
    if (s[v[t][0]] == 'L' && s[v[t].back()] == 'R') {
      lr.push_back(t);
      f = true;
    }
    if (s[v[t][0]] == 'R' && s[v[t].back()] == 'L') {
      rl.push_back(t);
      f = true;
    }
  }
  for (int i = 0; i < lr.size(); i++) pb(v[t + 1], v[lr[i]]);
  for (int i = 0; i < rl.size(); i++) pb(v[t + 2], v[rl[i]]);
  if (v[t + 1].empty())
    swap(v[t + 1], v[t + 2]);
  else if (!v[t + 2].empty()) {
    if (v[t + 1].back() > v[t + 2].back()) swap(v[t + 1], v[t + 2]);
    v[t + 1].push_back(v[t + 2].back());
    v[t + 2].pop_back();
    pb(v[t + 1], v[t + 2]);
  }
  vector<int> ans;
  if (f || v[t].empty())
    ans = v[t + 1];
  else if (v[t + 1].empty())
    ans = v[t];
  else {
    if (s[v[t][0]] == 'L' && s[v[t + 1][0]] == 'L') {
      ans = v[t + 1];
      pb(ans, v[t]);
    }
    if (s[v[t][0]] == 'L' && s[v[t + 1][0]] == 'R') {
      ans = v[t];
      pb(ans, v[t + 1]);
    }
    if (s[v[t][0]] == 'R' && s[v[t + 1][0]] == 'L') {
      ans = v[t];
      pb(ans, v[t + 1]);
    }
    if (s[v[t][0]] == 'R' && s[v[t + 1][0]] == 'R') {
      ans = v[t + 1];
      pb(ans, v[t]);
    }
  }
  for (int i = 0; i < ans.size(); i++) cout << ans[i] + 1 << " ";
  cout << "\n";
  return 0;
}
