#include <fstream>
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
const int N = 27;
long double ap[N], f[N], v[N], s;
int n, k, x[N];
void Get_Result(int k) {
long double p = 1;
for (int i = 1; i <= k; ++i)
p *= v[x[i]];
s += p * ap[k];
}
void Back(int k, int K) {
for (int i = x[k - 1] + 1; i <= n - K + k; ++i) {
x[k] = i;
if (k == K)
Get_Result(K);
else
Back (k + 1, K);
}
}
int main() {
fin >> n >> k;
f[0] = 1;
for (int i = 1; i <= n; ++i) {
f[i] = f[i-1] * i;
fin >> v[i];
}
ap[1] = f[n] / n;
ap[n] = f[n];
if (k != n)
for (int i = 2; i <= k; ++i)
ap[i] = ap[i - 1] * i / (n - i + 1);
Back (1, k);
fout << s / f[n];
}