#include <bits/stdc++.h>
using namespace std;
const int N = 30, P = 67, M = 4 * 1e6;
int lst[M], nxt[M];
unsigned long long p[N], t[M];
int n, l, a[N][4], b[N];
double eps = 1e-6, f[M];
void add(int x, unsigned long long y, double z) {
  t[++l] = y;
  f[l] = z;
  nxt[l] = lst[x];
  lst[x] = l;
}
double find(int x, unsigned long long y) {
  for (int i = lst[x]; i; i = nxt[i])
    if (t[i] == y) return f[i];
  return -1;
}
int get(int a, int b, int c) {
  if (a > c) swap(a, c);
  return (((a << 2) + b) << 2) + c;
}
unsigned long long get_ha() {
  unsigned long long ha = 0;
  for (int i = 1; i <= n - 1; 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 (int i = 1; i <= n; i++) ha = ha * P + p[i];
  return ha;
}
double dfs() {
  unsigned long long ha = get_ha();
  double now = find(ha % M, ha);
  if (now != -1) return now;
  double ans = 1.0;
  double c[4] = {0, 1e9, 1e9, 1e9};
  double P = 1.0 / 6.0;
  for (int cl = 1; cl <= 3; cl++)
    for (int i = 1; i <= n - 1; i++)
      for (int j = 1; j <= 3; j++) {
        bool ok = a[i][j] == cl;
        if (b[i] == 1) ok = 0;
        if (j != 2 && !a[i][2]) ok = 0;
        if (j == 2 && b[i] != 3) ok = 0;
        if (ok) {
          bool pd = 0;
          if (b[n] == 3) {
            n++;
            pd = 1;
          }
          a[i][j] = 0;
          b[i]--;
          for (int k = 1; k <= 3; k++)
            if (a[n][k] == 0) {
              a[n][k] = cl;
              b[n]++;
              c[cl] = min(c[cl], dfs());
              a[n][k] = 0;
              b[n]--;
            }
          if (pd) n--;
          a[i][j] = cl;
          b[i]++;
        }
      }
  if (c[1] == 1e9) {
    c[1] = 0;
    P += 1.0 / 3.0;
  }
  if (c[2] == 1e9) {
    c[2] = 0;
    P += 1.0 / 3.0;
  }
  if (c[3] == 1e9) {
    c[3] = 0;
    P += 1.0 / 6.0;
  }
  if (fabs(P - 1) < eps) return 0;
  ans = ans + c[1] / 3.0 + c[2] / 3.0 + c[3] / 6.0;
  ans = ans / (1 - P);
  if (find(ha % M, ha) == -1) add(ha % M, ha, ans);
  return ans;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    char ch;
    b[i] = 3;
    for (ch = getchar(); ch < 'A' || ch > 'Z'; ch = getchar())
      ;
    for (int 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());
}
