#include <bits/stdc++.h>
using namespace std;
long long n, l, a[30][4], b[30], last[4000005], nxt[4000005], p[30], t[4000005];
double f[4000005];
void add(long long x, long long y, double z) {
  t[++l] = y;
  f[l] = z;
  nxt[l] = last[x];
  last[x] = l;
}
double find(long long x, long long y) {
  long long i;
  for (i = last[x]; i; i = nxt[i])
    if (t[i] == y) return f[i];
  return -1;
}
long long get(int a, int b, int c) {
  if (a > c) swap(a, c);
  return ((a * 4 + b) * 4) + c;
}
long long g() {
  long long i, h = 0;
  for (i = 1; i < n; i++) {
    if (a[i][2] && b[i] > 1)
      p[i] = get(a[i][1], a[i][2], a[i][3]);
    else
      p[i] = 0;
  }
  p[n] = get(a[n][1], a[n][2], a[n][3]);
  sort(p + 1, p + n);
  for (i = 1; i <= n; i++) h = h * 67 + p[i];
  return h;
}
double dfs() {
  long long i, j, k, m, h = g();
  double now = find(h % 4000000, h);
  bool flag, w;
  if (now != -1) return now;
  double ans = 1.0, q = 1.0 / 6.0, c[4] = {0, 1e9, 1e9, 1e9};
  for (m = 1; m <= 3; m++) {
    for (i = 1; i < n; i++) {
      for (j = 1; j <= 3; j++) {
        flag = (a[i][j] == m);
        if (b[i] == 1) flag = false;
        if (j != 2 && !a[i][2]) flag = false;
        if (j == 2 && b[i] != 3) flag = false;
        if (flag) {
          w = false;
          if (b[n] == 3) {
            n++;
            w = true;
          }
          a[i][j] = 0;
          b[i]--;
          for (k = 1; k <= 3; k++) {
            if (a[n][k] == 0) {
              a[n][k] = m;
              b[n]++;
              c[m] = min(c[m], dfs());
              a[n][k] = 0;
              b[n]--;
            }
          }
          if (w) n--;
          a[i][j] = m;
          b[i]++;
        }
      }
    }
  }
  if (c[1] == 1e9) {
    c[1] = 0;
    q += 1.0 / 3.0;
  }
  if (c[2] == 1e9) {
    c[2] = 0;
    q += 1.0 / 3.0;
  }
  if (c[3] == 1e9) {
    c[3] = 0;
    q += 1.0 / 6.0;
  }
  if (fabs(q - 1) < 1e-6) return 0;
  ans += c[1] / 3.0 + c[2] / 3.0 + c[3] / 6.0;
  ans = ans / (1 - q);
  if (find(h % 4000000, h) == -1) add(h % 4000000, h, ans);
  return ans;
}
int main() {
  char ch;
  long long i, j;
  cin >> n;
  for (i = 1; i <= n; i++) {
    b[i] = 3;
    ch = getchar();
    while (ch < 'A' || ch > 'Z') ch = getchar();
    for (j = 1; j <= 3; j++) {
      if (ch == 'G') a[i][j] = 1;
      if (ch == 'B') a[i][j] = 2;
      if (ch == 'R') a[i][j] = 3;
      ch = getchar();
    }
  }
  printf("%.9lf\n", dfs());
  return 0;
}
