#include <bits/stdc++.h>
using namespace std;
struct hash {
  int head[8592637], next[8592637], t;
  unsigned long long lk[8592637];
  double x[8592637];
  double find(unsigned long long s) {
    for (int i = head[s % 8592637]; i; i = next[i])
      if (lk[i] == s) return x[i];
    return -1;
  }
  void ins(unsigned long long s, double f) {
    if (find(s) > -1) return;
    lk[++t] = s, x[t] = f, next[t] = head[s % 8592637], head[s % 8592637] = t;
  }
} H;
int N, a[105], F[256], b[105];
map<unsigned long long, double> GB;
inline int G(int x) { return !!x; }
inline void get(int x, int* a) {
  a[0] = (x >> 4) & 3, a[1] = (x >> 2) & 3, a[2] = x & 3;
}
inline int BG(int a, int b, int c) {
  if (a > c) swap(a, c);
  return (((a << 2) + b) << 2) + c;
}
void init() {
  scanf("%d", &N), F['G'] = 1, F['B'] = 2, F['R'] = 3;
  char s[4];
  for (int i = 1; i <= N; i++)
    scanf("%s", s), a[i] = BG(F[s[0]], F[s[1]], F[s[2]]);
}
unsigned long long Hash(int n) {
  unsigned long long s = 0;
  for (int i = 1; i <= n; i++) b[i] = a[i];
  sort(b + 1, b + n);
  for (int i = 1; i <= n; i++) (s *= 31415927) += b[i];
  return s;
}
double dfs(int n) {
  unsigned long long s = Hash(n);
  double f = H.find(s), c[4] = {0, 1e9, 1e9, 1e9};
  if (f > -1) return f;
  for (int i = 1; i < n; i++) {
    int x[3], y[3], nn = n, ai = a[i], an = a[n];
    get(ai, x), get(an, y);
    if (G(x[0]) + G(x[1]) + G(x[2]) == 1) continue;
    if (y[0] && y[1] && y[2]) nn++, y[0] = y[1] = y[2] = 0;
    for (int j = 0; j < 3; j++)
      if (x[j]) {
        int t = x[j];
        if (G(x[0]) + G(x[1]) + G(x[2]) == 2 && (j == 1 || !x[1])) continue;
        x[j] = 0, a[i] = BG(x[0], x[1], x[2]);
        if (G(x[0]) + G(x[1]) + G(x[2]) == 1 || !x[1]) a[i] = 0;
        x[j] = t;
        for (int k = 0; k < 3; k++)
          if (!y[k])
            y[k] = t, a[nn] = BG(y[0], y[1], y[2]), y[k] = 0,
            c[t] = min(c[t], dfs(nn));
      }
    a[i] = ai, a[n] = an;
  }
  if (c[1] == 1e9 && c[2] == 1e9 && c[3] == 1e9) return H.ins(s, 0), 0;
  double t = 1.0 / 6;
  if (c[1] == 1e9) t += 1.0 / 3, c[1] = 0;
  if (c[2] == 1e9) t += 1.0 / 3, c[2] = 0;
  if (c[3] == 1e9) t += 1.0 / 6, c[3] = 0;
  f = (c[1] / 3 + c[2] / 3 + c[3] / 6 + 1) / (1 - t), H.ins(s, f);
  return f;
}
int main() {
  init();
  printf("%.6lf\n", dfs(N));
  return 0;
}
