#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
int n,m,a[8],p[8],b[8],f[305][305][33];
double ans;
int Solve()
{
    memset(f,0,sizeof(f));
    f[0][a[n+1]*n][0]=1;
    for(int i=0;i<n*m;++i) for(int j=i+1;j<=n*m;++j) for(int k=0;k<1<<n;++k) if(f[i][j][k])
    {
        f[i+1][j][k]+=f[i][j][k];
        int r=i%n+1;
        if(!(k&(1<<r-1))) f[i+1][min(n*m,max(j,i+a[p[r]]*n))][k|(1<<r-1)]+=f[i][j][k];
    }
    return f[n*m][n*m][(1<<n)-1];
}
void dfs(int x)
{
    if(x>n){ans+=Solve();return;}
    for(int i=1;i<=n;++i) if(!b[i]) p[x]=i,b[i]=1,dfs(x+1),b[i]=0;
}
int main()
{
    n=read();m=read();
    for(int i=1;i<=n;++i) a[i]=read();
    sort(a+1,a+n+1);--n;dfs(1);
    for(int i=1;i<=n;++i) ans/=i*m;
    printf("%.15lf",ans);
    return 0;
}