#include <bits/stdc++.h>
using namespace std;
inline int read() {
  register int x = 0, f = 1;
  register char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = 0;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + (ch ^ '0');
    ch = getchar();
  }
  return f ? x : -x;
}
int n, num, a[100005];
char ch[100005];
vector<int> V[100005], S[2], A[2][2];
int main() {
  scanf("%s", ch + 1);
  n = strlen(ch + 1);
  for (int i = (1), _ed = (n); i <= _ed; ++i) a[i] = ch[i] == 'R';
  for (int i = (1), _ed = (n); i <= _ed; ++i) {
    int id;
    if (!(int)(S[a[i] ^ 1]).size())
      id = ++num;
    else
      id = S[a[i] ^ 1].back(), S[a[i] ^ 1].pop_back();
    V[id].push_back(i);
    S[a[i]].push_back(id);
  }
  printf("%d\n", num - 1);
  for (int i = (1), _ed = (num); i <= _ed; ++i)
    A[a[V[i].front()]][a[V[i].back()]].push_back(i);
  for (int i = (0),
           _ed = (min((int)(A[0][0]).size(), (int)(A[1][1]).size()) - 1);
       i <= _ed; ++i) {
    int p = A[0][0].back(), q = A[1][1].back();
    A[0][0].pop_back(), A[1][1].pop_back();
    V[p].insert(V[p].end(), V[q].begin(), V[q].end());
    A[0][1].push_back(p);
  }
  for (int c = (0), _ed = (1); c <= _ed; ++c)
    while ((int)(A[c][c ^ 1]).size() > 1) {
      int p = A[c][c ^ 1][0], q = A[c][c ^ 1].back();
      A[c][c ^ 1].pop_back();
      V[p].insert(V[p].end(), V[q].begin(), V[q].end());
    }
  if ((int)(A[0][0]).size() || (int)(A[1][1]).size()) {
    int c = (int)(A[1][1]).size();
    if ((int)(A[c][c ^ 1]).size())
      for (int x : V[A[c][c ^ 1][0]]) printf("%d ", x);
    for (int x : V[A[c][c][0]]) printf("%d ", x);
    if ((int)(A[c ^ 1][c]).size())
      for (int x : V[A[c ^ 1][c][0]]) printf("%d ", x);
  } else {
    if (!(int)(A[0][1]).size() || !(int)(A[1][0]).size()) {
      int c = (int)(A[1][0]).size();
      for (int x : V[A[c][c ^ 1][0]]) printf("%d ", x);
    } else {
      int p = A[0][1][0], q = A[1][0][0];
      if (V[p].back() > V[q].back()) swap(p, q);
      V[p].push_back(V[q].back()), V[q].pop_back();
      for (int x : V[p]) printf("%d ", x);
      for (int x : V[q]) printf("%d ", x);
    }
  }
  puts("");
  return 0;
}
