#include <bits/stdc++.h>
using namespace std;
const int S = 100005;
template <class T>
void read(T &x) {
  int sgn = 1;
  char ch;
  x = 0;
  for (ch = getchar(); (ch < '0' || ch > '9') && ch != '-'; ch = getchar())
    ;
  if (ch == '-') ch = getchar(), sgn = -1;
  for (; '0' <= ch && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
  x *= sgn;
}
template <class T>
void write(T x) {
  if (x < 0)
    putchar('-'), write(-x);
  else if (x < 10)
    putchar(x + '0');
  else
    write(x / 10), putchar(x % 10 + '0');
}
int s, cnt = 0;
char str[S];
vector<int> par[S];
vector<int> vec[2][2];
int main() {
  scanf("%s", str), s = strlen(str);
  for (int i = 0; i < s; i++) {
    int c = str[i] == 'L' ? 0 : 1;
    if (!vec[c][c ^ 1].empty()) {
      int id = vec[c][c ^ 1].back();
      vec[c][c ^ 1].pop_back();
      vec[c][c].push_back(id);
      par[id].push_back(i);
    } else if (!vec[c ^ 1][c ^ 1].empty()) {
      int id = vec[c ^ 1][c ^ 1].back();
      vec[c ^ 1][c ^ 1].pop_back();
      vec[c ^ 1][c].push_back(id);
      par[id].push_back(i);
    } else {
      par[cnt].push_back(i);
      vec[c][c].push_back(cnt++);
    }
  }
  if (vec[0][0].empty() && vec[1][1].empty() && !vec[0][1].empty() &&
      !vec[1][0].empty()) {
    int c = str[s - 1] == 'L' ? 0 : 1, id = vec[c][c ^ 1].back();
    par[id].push_back(s - 1);
    vec[c][c].push_back(id), vec[c][c ^ 1].pop_back();
    id = vec[c ^ 1][c].back();
    par[id].pop_back();
    vec[c ^ 1][c ^ 1].push_back(id), vec[c ^ 1][c].pop_back();
  }
  int st = vec[0][0].size() < vec[1][1].size();
  if (vec[0][0].empty() && vec[1][1].empty()) st = vec[0][1].empty();
  write(cnt - 1), putchar('\n');
  int id;
  for (int i = 0; i < vec[st][st ^ 1].size(); i++) {
    id = vec[st][st ^ 1][i];
    for (int j = 0; j < par[id].size(); j++)
      write(par[id][j] + 1), putchar(' ');
  }
  if (!vec[st][st].empty()) {
    id = vec[st][st][0];
    for (int i = 0; i < par[id].size(); i++)
      write(par[id][i] + 1), putchar(' ');
    for (int i = 0; i < vec[st ^ 1][st].size(); i++) {
      id = vec[st ^ 1][st][i];
      for (int j = 0; j < par[id].size(); j++)
        write(par[id][j] + 1), putchar(' ');
    }
    for (int i = 0; i < vec[st ^ 1][st ^ 1].size(); i++) {
      id = vec[st ^ 1][st ^ 1][i];
      for (int j = 0; j < par[id].size(); j++)
        write(par[id][j] + 1), putchar(' ');
      if (i + 1 < vec[st][st].size()) {
        id = vec[st][st][i + 1];
        for (int j = 0; j < par[id].size(); j++)
          write(par[id][j] + 1), putchar(' ');
      }
    }
  }
  return 0;
}
