#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int N = 8592637;
const int P = 31415927;
const double eps = 1e-6;
char s[10];
int F[256], a[105], tt[105], g[N], nxt[N], tot;
unsigned long long to[N];
double tmp[N];
int gethash(int a, int b, int c) {
  if (a > c) swap(a, c);
  return (((a << 2) + b) << 2) + c;
}
int Gethash(int n) {
  int i;
  unsigned long long key = 0;
  for (i = 1; i <= n; i++) tt[i] = a[i];
  sort(tt + 1, tt + n);
  for (i = 1; i <= n; i++) (key *= P) += tt[i];
  return key;
}
double search(unsigned long long x) {
  for (int k = g[x % N]; k; k = nxt[k])
    if (to[k] == x) return tmp[k];
  return -1;
}
void push(unsigned long long key, double x) {
  if (search(key) > -1) return;
  to[++tot] = key;
  nxt[tot] = g[key % N];
  g[key % N] = tot;
  tmp[tot] = x;
}
int G(int x) { return !!x; }
double dfs(int n) {
  int i, j, k, t1, t2, tmp, x[5], y[5], tn;
  unsigned long long t = Gethash(n);
  double f = search(t), b[4] = {0, 1e9, 1e9, 1e9}, g = 1.0 / 6;
  if (f > -1) return f;
  for (i = 1; i < n; i++) {
    t1 = a[i];
    t2 = a[n];
    x[3] = t1 % 4;
    x[2] = (t1 / 4) % 4;
    x[1] = (t1 / 4) / 4;
    y[3] = t2 % 4;
    y[2] = (t2 / 4) % 4;
    y[1] = (t2 / 4) / 4;
    if (G(x[1]) + G(x[2]) + G(x[3]) == 1) continue;
    if (y[1] && y[2] && y[3])
      tn = n + 1, y[1] = y[2] = y[3] = 0;
    else
      tn = n;
    for (j = 1; j <= 3; j++)
      if (x[j]) {
        tmp = x[j];
        if (G(x[1]) + G(x[2]) + G(x[3]) == 2 && (j == 2 || !x[2])) continue;
        x[j] = 0;
        a[i] = gethash(x[1], x[2], x[3]);
        if (G(x[1]) + G(x[2]) + G(x[3]) == 1 || !x[2]) a[i] = 0;
        x[j] = tmp;
        for (k = 1; k <= 3; k++)
          if (!y[k]) {
            y[k] = tmp;
            a[tn] = gethash(y[1], y[2], y[3]);
            y[k] = 0;
            b[tmp] = min(b[tmp], dfs(tn));
          }
      }
    a[i] = t1;
    a[n] = t2;
  }
  if (b[1] == 1e9 && b[2] == 1e9 && b[3] == 1e9) return push(t, 0), 0;
  if (b[1] == 1e9) g += 1.0 / 6, b[1] = 0;
  if (b[2] == 1e9) g += 1.0 / 3, b[2] = 0;
  if (b[3] == 1e9) g += 1.0 / 3, b[3] = 0;
  f = (b[1] / 6 + b[2] / 3 + b[3] / 3 + 1) / (1 - g);
  push(t, f);
  return f;
}
int main() {
  int i, n;
  F['R'] = 1;
  F['G'] = 2;
  F['B'] = 3;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%s", &s);
    a[i] = gethash(F[s[0]], F[s[1]], F[s[2]]);
  }
  printf("%.10lf", dfs(n));
  return 0;
}
