#include <fstream>
#include <iomanip>
using namespace std;
#define NMAX 28
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int N, K;
double v[NMAX], A[NMAX][NMAX], B[NMAX][NMAX];
void Read_Data ()
{
fin >> N >> K;
for (int i = 1; i <= N; ++i)
fin >> v[i];
for (int i = 0; i <= NMAX; ++i)
{
A[i][0] = 1.0;
B[i][0] = 1.0;
}
}
void Solve ()
{
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= K; ++j)
{
A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * v[i];
B[i][j] = B[i - 1][j] + B[i - 1][j - 1];
}
}
fout << setprecision (6);
fout << A[N][K] / B[N][K] << "\n";
}
int main ()
{
Read_Data ();
Solve ();
return 0;
}