#include <bits/stdc++.h>
using namespace std;
vector<int> p[100001];
int n, length, leng, cnt1, cnt2, P[100001];
queue<int> A;
queue<int> B;
string s;
vector<int> LL;
vector<int> RR;
vector<int> LR;
vector<int> RL;
int main() {
  cin >> s, n = s.length();
  for (int i = 0; i < n; ++i) {
    if (s[i] == 'L') {
      cnt1++;
      if (A.empty())
        p[++length].push_back(i), B.push(length);
      else
        p[A.front()].push_back(i), B.push(A.front()), A.pop();
    } else {
      cnt2++;
      if (B.empty())
        p[++length].push_back(i), A.push(length);
      else
        p[B.front()].push_back(i), A.push(B.front()), B.pop();
    }
  }
  for (int i = 1; i <= length; ++i) {
    if (s[p[i][0]] == 'L' && s[p[i].back()] == 'L') LL.push_back(i);
    if (s[p[i][0]] == 'L' && s[p[i].back()] == 'R') LR.push_back(i);
    if (s[p[i][0]] == 'R' && s[p[i].back()] == 'L') RL.push_back(i);
    if (s[p[i][0]] == 'R' && s[p[i].back()] == 'R') RR.push_back(i);
  }
  if (LL.empty() && RR.empty() && LR.size() && RL.size()) {
    if (s[s.length() - 1] == 'L') {
      p[LR.back()].push_back(n - 1), p[RL.back()].pop_back();
      LL.push_back(LR.back()), RR.push_back(RL.back()), LR.pop_back(),
          RL.pop_back();
    } else {
      p[RL.back()].push_back(n - 1), p[LR.back()].pop_back();
      RR.push_back(RL.back()), RR.push_back(LR.back()), RL.pop_back(),
          LR.pop_back();
    }
  }
  if (cnt1 < cnt2) swap(LL, RR), swap(LR, RL);
  for (int i = 0; i < LR.size(); ++i) P[++leng] = LR[i];
  if (LL.size()) P[++leng] = LL[0];
  for (int i = 0; i < RL.size(); ++i) P[++leng] = RL[i];
  for (int i = 0; i < RR.size(); ++i) {
    P[++leng] = RR[i];
    if (i + 1 < LL.size()) P[++leng] = LL[i + 1];
  }
  printf("%d\n", length - 1);
  for (int i = 1; i <= leng; ++i)
    for (int j = 0; j < p[P[i]].size(); ++j) printf("%d ", p[P[i]][j] + 1);
  puts("");
  return 0;
}
