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

const int N = 10;

int id[N], l[N]; double dp[350][1 << 6];

int main() {
    int n, c, frac = 0; scanf("%d%d", &n, &c); double ans = 0;
    for (int i = 1; i <= n; i++) scanf("%d", &l[i]), id[i] = i;
    sort(l + 1, l + n + 1);
    do { // 枚举小数的相对大小
        memset(dp, 0, sizeof(dp));
        dp[l[n] * n][1 << n - 1] = 1;
        for (int i = 1; i <= n * c; i++) {
            int nw = id[(i - 1) % n + 1];
            if (nw == n) continue;
            for (int j = i; j <= n * c; j++)
                for (int s = (1 << n) - 1; s > 0; s--) if (dp[j][s] && !(s & (1 << nw - 1))) 
                    dp[min(n * c, max(j, i + l[nw] * n))][s | (1 << nw - 1)] += dp[j][s];
        }
        ans += dp[n * c][(1 << n) - 1], frac++;
    } while (next_permutation(id + 1, id + n));
    printf("%.12lf\n", ans / frac / pow(c, n - 1));
}
