#include <bits/stdc++.h>
#pragma GCC optimize("O2")
const int MAXN = 1e5 + 5;
using namespace std;
struct node {
  int i;
  node *l, *r;
};
node *newN(int i) {
  node *x = new node;
  x->i = i;
  x->r = x->l = NULL;
  return x;
}
node *insert(node *actual, int i, bool k) {
  if (!actual) return newN(i);
  if (k)
    return actual->r = newN(i);
  else
    return actual->l = newN(i);
}
void inorder(node *root) {
  if (!root) return;
  inorder(root->l);
  cout << root->i << '\n';
  inorder(root->r);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  string a;
  cin >> a;
  node *root = newN(1), *actual = root;
  for (int i = 0; i < (int)a.size() - 1; i++) {
    if (a[i] == 'l')
      actual = insert(actual, i + 2, 0);
    else
      actual = insert(actual, i + 2, 1);
  }
  inorder(root);
  return 0;
}
