#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
long long p, P;
double dz, v[30], best[30][30], sum;
int tot, n, k, i, j, s[30];
int main () {
fin >> n >> k;
for (i = 1; i <= n; i++)
fin >> v[i];
best[0][0] = 1;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
{
if (i == j) best[i][j] = best[i-1][j-1] * v[i];
else if (j == 1) best[i][j] = best[i-1][j] + v[i];
else best[i][j] = best[i-1][j] + v[i] * best[i-1][j-1];
}
for (i = 1; i <= n-k; i++)
s[i] = i;
P = 1;
for (i = k+1; i <= n; i++)
{
p = i;
for (j = n-k; j >= 1; j--)
if (i % s[j] == 0 && s[j] != 1)
{
p /= j;
s[j] = 1;
}
P *= p;
}
fout << best[n][k] / P << "\n";
return 0;
}