#include <bits/stdc++.h>
int inp() {
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  int sum = 0;
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  return sum;
}
int end[100010], nxt[100010], a[100010];
bool used[100010];
char s[100010];
std::vector<int> vec[4];
std::set<int> set[2];
void print(int x) {
  int cur = x;
  do {
    printf("%d ", cur);
    cur = nxt[cur];
  } while (cur != end[x]);
}
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  set[0].insert(n + 1);
  set[1].insert(n + 1);
  used[n + 1] = true;
  for (int i = 1; i <= n; i++) {
    a[i] = (s[i] == 'R') ? 1 : 0;
    set[a[i]].insert(i);
  }
  for (int i = 1; i <= n; i++)
    if (!used[i]) {
      int cur = i, last = i;
      while (!used[cur]) {
        used[cur] = true;
        set[a[cur]].erase(cur);
        int pos = *set[a[cur] ^ 1].upper_bound(cur);
        last = cur;
        nxt[cur] = pos;
        cur = pos;
      }
      vec[(a[i] << 1) + a[last]].push_back(i);
      end[i] = cur;
    }
  printf("%d\n", (int)(vec[0].size() + vec[1].size() + vec[2].size() +
                       vec[3].size() - 1));
  if (vec[3].size() > vec[0].size()) {
    for (int i = 0; i < vec[2].size(); i++) print(vec[2][i]);
    for (int i = 0; i < vec[0].size(); i++) {
      print(vec[3][i]);
      print(vec[0][i]);
    }
    print(vec[3][vec[3].size() - 1]);
    for (int i = 0; i < vec[1].size(); i++) print(vec[1][i]);
  } else if (vec[0].size() > vec[3].size()) {
    for (int i = 0; i < vec[1].size(); i++) print(vec[1][i]);
    for (int i = 0; i < vec[3].size(); i++) {
      print(vec[0][i]);
      print(vec[3][i]);
    }
    print(vec[0][vec[0].size() - 1]);
    for (int i = 0; i < vec[2].size(); i++) print(vec[2][i]);
  } else if (vec[0].size() > 0) {
    for (int i = 0; i < vec[1].size(); i++) print(vec[1][i]);
    print(vec[0][0]);
    for (int i = 0; i < vec[2].size(); i++) print(vec[2][i]);
    print(vec[3][0]);
    for (int i = 1; i < vec[0].size(); i++) {
      print(vec[0][i]);
      print(vec[3][i]);
    }
  } else {
    for (int i = 0; i < vec[1].size(); i++) print(vec[1][i]);
    for (int i = 0; i < vec[2].size(); i++) print(vec[2][i]);
  }
  putchar('\n');
}
