#include<bits/stdc++.h>
using namespace std;

const int maxn=6,maxc=50+5;
int n,c,l[maxn],dp[maxn*maxc][maxn*maxc][1<<maxn],rnk[maxn],lim;
long long res;
double ans;

inline int chk(int a,int b){
	if(b>lim)return lim;
	return a>=b?a:b;
}

int main(){
	cin>>n>>c;
	for(int i=0;i<n;++i)
		cin>>l[i];
	sort(l,l+n,greater<int>());
	for(int i=1;i<n;++i)
		rnk[i]=i;
	lim=n*c;
	do{
		memset(dp,0,sizeof(dp));
		dp[0][l[0]*n][0]=1;
		for(int i=0;i<n*c;++i)
			for(int j=i;j<=n*c;++j)
				for(int k=0;k<(1<<n-1);++k){
					dp[i+1][j][k]+=dp[i][j][k];
					if(i%n&&(k>>rnk[i%n]-1&1)==0)
						dp[i+1][chk(j,i+n*l[rnk[i%n]])][k|1<<rnk[i%n]-1]+=dp[i][j][k];
				}
		res+=dp[n*c][n*c][(1<<n-1)-1];
	}
	while(next_permutation(rnk+1,rnk+n));
	ans=res;
	for(int i=1;i<n;++i)
		ans/=i*c;
	printf("%.14f\n",ans);
	return 0;
}