#include<bits/stdc++.h>
#define fo(i,a,b)for(int i=a,_e=b;i<=_e;++i)
#define db double
using namespace std;
int n,c,l[9],w[9],jc,o,v,nc;
int f[2][1<<5][305];
db ans;
int main(){
	cin>>n>>c;
	fo(i,0,n-1)cin>>l[i];
	sort(l,l+n);
	jc=1;
	fo(i,0,n-2)w[i]=i,jc=jc*(i+1);
	nc=n*c;
	fo(go,1,jc){
		memset(f,0,sizeof f);
		o=0;
		f[0][0][l[n-1]*n]=1;
		fo(i,1,nc){
			int x=i%n?i%n-1:-1;
			o^=1;
			memset(f[o],0,sizeof f[o]);
			fo(j,0,(1<<n-1)-1)
				fo(k,i,nc)if(v=f[!o][j][k]){
					f[o][j][k]+=v;
					if(x>-1&&!(j&(1<<x)))
						f[o][j|(1<<x)][min(nc,max(k,i+l[w[x]]*n))]+=v;
				}
		}
		ans+=f[o][(1<<n-1)-1][nc];
		next_permutation(w,w+n-1);
	}
	ans/=jc;
	fo(i,1,n-1)ans/=c;
	printf("%.15lf",ans);
}