有目共睹
#include <bits/stdc++.h>
#define For(i,a,b) for(int i=a;i<=b;i++)
#define Rev(i,a,b) for(int i=a;i>=b;i--)
#define clr(a,val) memset(a,val,sizeof(a))
//#define int long long
using namespace std;
const int N=15;
string s[N][5];
double f[5][5][5][5][5][5][5][5][5];
signed main()
{
int Charlie=1,Vinnie=1;
while(Charlie&Vinnie){
if(!(cin>>s[1][1])) break;
For(i,1,9) For(j,1,4){
if(i!=1||j!=1) cin>>s[i][j];
}
Rev(c1,4,0) Rev(c2,4,0) Rev(c3,4,0) Rev(c4,4,0) Rev(c5,4,0) Rev(c6,4,0) Rev(c7,4,0) Rev(c8,4,0) Rev(c9,4,0){
f[c1][c2][c3][c4][c5][c6][c7][c8][c9]=0.0;
}
f[4][4][4][4][4][4][4][4][4]=1.0;
Rev(c1,4,0) Rev(c2,4,0) Rev(c3,4,0) Rev(c4,4,0) Rev(c5,4,0) Rev(c6,4,0) Rev(c7,4,0) Rev(c8,4,0) Rev(c9,4,0){
if(c1+c2+c3+c4+c5+c6+c7+c8+c9==0) break;
double cpdd=f[c1][c2][c3][c4][c5][c6][c7][c8][c9];
// printf("cpdd: %lf\n",cpdd);
int c[N]={0};
c[1]=c1;c[2]=c2;c[3]=c3;c[4]=c4;c[5]=c5;c[6]=c6;c[7]=c7;c[8]=c8;c[9]=c9;
int cnt=0;
For(i,1,9){
For(j,i+1,9){
if(c[i]>0 && c[j]>0 && s[i][c[i]][0]==s[j][c[j]][0]){
cnt++;
}
}
}
For(i,1,9){
For(j,i+1,9){
if(c[i]>0 && c[j]>0 && s[i][c[i]][0]==s[j][c[j]][0]){
c[i]--; c[j]--;
f[c[1]][c[2]][c[3]][c[4]][c[5]][c[6]][c[7]][c[8]][c[9]]+=cpdd/cnt;
c[i]++; c[j]++;
}
}
}
}
printf("%.6lf\n",f[0][0][0][0][0][0][0][0][0]);
}
return 0;
}