#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<stack>
#include<queue>
#include<cstring>
using namespace std;
typedef long long ll;
#define N 400002
int n,c,a[N];
double dp[2][302][102],ans;
int ct;
int main()
{
	scanf("%d%d",&n,&c);
	for(int i=0;i<n;i++)scanf("%d",&a[i]);
	sort(a,a+n);
	do
	{//puts("in");
		memset(dp,0,sizeof(dp));
		dp[0][a[n-1]*n][0]=1;int t=0;
		for(int i=1;i<=n*c;i++,t^=1)
		{if(i%n==0)
		{t^=1;continue;
		}int x=i%n-1;
			for(int j=i;j<=n*c;j++)for(int s=0;s<(1<<(n-1));s++)dp[t^1][j][s]=0;
			for(int j=i;j<=n*c;j++)for(int s=0;s<(1<<(n-1));s++)
			{dp[t^1][j][s]+=dp[t][j][s];
				if(!(s&(1<<x)))
			{
				
				dp[t^1][min(c*n,max(j,i+a[x]*n))][s|(1<<x)]+=dp[t][j][s];
			}
			}
			
			//for(int j=0;j<=n*c;j++)printf("(%.1lf %.1lf) ",dp[t][j][0],dp[t][j][1]);puts("from");
			//for(int j=0;j<=n*c;j++)printf("(%.1lf %.1lf) ",dp[t^1][j][0],dp[t^1][j][1]);puts("");
		}
		ans+=dp[t][n*c][(1<<(n-1))-1];ct++;
	}while(next_permutation(a,a+n-1));
	ans/=1.0*ct;
	for(int i=0;i<n-1;i++)ans/=1.0*c;
	printf("%.14lf\n",ans);
}
