#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[305][33][305],ans=0,all;
int p[7],a[7],n,c;
inline int max(int a,int b)
{return a>b?a:b;}
inline int min(int a,int b)
{return a<b?a:b;}
inline void solve()
{int i,j,k;
for (i=0;i<n*c;i++)
{int o=p[i%n];
for (j=0;j<(1<<(n-1));j++)
{for (k=i;k<=n*c;k++)
{if (!dp[i][j][k]) continue;
dp[i+1][j][k]+=dp[i][j][k];
if (o&&(!((1<<(o-1))&j)))
{dp[i+1][j|(1<<(o-1))][max(k,min(n*c,i+a[o]*n))]+=dp[i][j][k];}
}
}
}
ans+=dp[n*c][(1<<(n-1))-1][n*c];
return;
}
int main (){
	int i;
	scanf ("%d%d",&n,&c);
	for (i=1;i<=n;i++)
	{scanf ("%d",&a[i]);}
	sort(a+1,a+n+1);
	for (i=1;i<=n-1;i++) p[i]=i;
	int num=0;
	do
	{memset (dp,0,sizeof(dp));
	dp[0][0][a[n]*n]=1;solve();
	num++;
	}while (next_permutation(p+1,p+n));
	all=1;
	for (i=1;i<=n-1;i++)
	{all*=((ll)(c));}
	all*=((ll)(num));
	double res=((double)(ans))/((double)(all));
	printf ("%.12lf\n",res);
	return 0;
}