#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e6 + 5;
char s[maxn];
string c;
int len;
double dp[maxn][2];
bool check(double mid) {
  dp[0][0] = 0.0;
  dp[0][1] = -mid;
  for (int i = 0; i < len; ++i) {
    dp[i + 1][0] = dp[i][1] - mid;
    dp[i + 1][1] = dp[i][0] - mid;
    if (c[i] != 'X') {
      if (c[i] == 'L')
        dp[i + 1][1] = max(dp[i + 1][1], dp[i][0] + 1 - mid);
      else
        dp[i + 1][0] = max(dp[i + 1][0], dp[i][1] + 1 - mid);
    }
    dp[i + 1][0] = max(dp[i + 1][0], dp[i + 1][1] - mid);
    dp[i + 1][1] = max(dp[i + 1][1], dp[i + 1][0] - mid);
  }
  return dp[len][0] > 0;
}
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  for (int i = 1; i <= n; ++i) {
    c += s[i];
    if (i + 1 <= n && s[i] != 'X' && s[i] == s[i + 1]) c += 'X';
  }
  if (s[1] == s[n] && s[1] != 'X') {
    if (s[1] == 'L')
      c += 'X';
    else
      c = "X" + c;
  }
  len = c.length();
  double l = 0, r = 1;
  while (r - l > 1e-9) {
    double mid = (l + r) / 2.0;
    if (check(mid))
      l = mid;
    else
      r = mid;
  }
  int x = (l + 1e-9) * 1e8;
  printf("%d.%06d\n", x / 1000000, x % 1000000);
  return 0;
}
