#include<iostream>
#include<cstdio>
#include<cstring>
#define FOR(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long double dou;
const int N=6,M=51;
int n,m,L,u,w,vi[N],rk[N],p[N],a[N],f[N*M][32][N*M];
dou ans,nv;
void work(){
	memset(f,0,sizeof f);
	f[0][0][a[0]]=1;
	FOR(i,1,L)FOR(j,0,(1<<m)-1)FOR(k,i+1,L+1)if(w=f[i-1][j][k]){
		f[i][j][k]+=w;
		//cout<<i-1<<' '<<j<<' '<<k<<' '<<w<<'\n';
		if(!(u=p[i%n]) || (j&1<<u-1)) continue;
		f[i][j|1<<u-1][max(k,min(i+a[u],L+1))]+=w;
	}
	ans+=f[L][(1<<m)-1][L+1];
	//printf("%.13Lf\n",ans);
}
void dfs(int x){
	if(x>m) work();
	FOR(i,1,m)if(!vi[i]) vi[i]=1,rk[p[x]=i]=x,dfs(x+1),vi[i]=0;
}
int main(){
	//freopen("1.in","r",stdin);
	scanf("%d%d",&n,&L);L*=n;m=n-1;
	FOR(i,0,m) scanf("%d",&a[i]),a[i]*=n;
	FOR(i,1,m)if(a[i]>a[0]) swap(a[i],a[0]);
	dfs(1);nv=1;
	FOR(i,1,m) nv*=i*L/n;
	printf("%.13Lf",ans/nv);
} 