#include <iostream>
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int st[30], n, k;
double v[30], sum, rez, nrsol;
int valid (int niv)
{
int i;
for (i=1; i<niv; i++)
if(st[i]==st[niv])return 0;
return 1;
}
void produs ()
{
int i;
double p;
p=1.0;
for (i=1; i<=k; i++)
p*=v[st[i]];
sum+=p;
}
void bck (int niv)
{
int i;
for (i=1; i<=n; i++)
{
st[niv]=i;
if (valid(niv)==1)
{
if (niv==k)
{
nrsol++;
produs();
}
else bck(niv+1);
}
}
}
int main ()
{
fin>>n>>k;
for (int i=1; i<=n; i++)
fin>>v[i];
st[0]=0;
bck(1);
fout<<fixed<<setprecision(6)<<sum/nrsol;
}