#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=305,p=998244353,inf=0x3f3f3f3f;
int read(){
	int f=1,g=0;
	char ch=getchar();
	for (;!isdigit(ch);ch=getchar()) if (ch=='-') f=-1;
	for (;isdigit(ch);ch=getchar()) g=g*10+ch-'0';
	return f*g;
}
int n,C,a[10],b[10];
ll f[1<<5][N];
ll calc(){
	memset(f,0,sizeof(f));
	f[0][a[n]*n-1]=1;
	for (int i=0;i<n*C;i++){
		int x=i%n,r=min(n*C,i+a[b[x]]*n);
		for (int j=0;j<(1<<n);j++)
		if (!(j&(1<<x))) for (int k=i;k<=n*C;k++)
		f[j+(1<<x)][max(r,k)]+=f[j][k];
	}
	return f[(1<<n)-1][n*C];
}
int main(){
	n=read()-1;C=read();
	for (int i=0;i<=n;i++) a[i]=read(),b[i]=i;
	sort(a,a+n+1);
	ll ans=0;
	do{ans+=calc();}
	while (next_permutation(b,b+n));
	ll t=1;
	for (int i=1;i<=n;i++) t*=i*C;
	printf("%.16lf\n",1.0*ans/t);
	return 0;
}