#include <fstream>
#include <algorithm>
#include <iomanip>
#define nrmax 26
using namespace std;
ifstream input("dezastru.in");
ofstream print("dezastru.out");
int n,k,nr;
double V[nrmax*nrmax],sum,x;
double DP[nrmax][nrmax];
void citire(){
input>>n>>k;
for(int i=1;i<=n;i++)
input>>V[i];
input.close();
}
int combinari(int n,int k){
if(k==0)return 1;
if(k>n)return 0;
return(combinari(n-1,k)+combinari(n-1,k-1));
}
void rezolvare(){
for(int i=0;i<=n;i++)
DP[i][0]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=k;j++)
DP[i][j]=DP[i-1][j]+DP[i-1][j-1]*V[i];
}
int main(){
citire();
rezolvare();
print<<fixed<<setprecision(6)<<DP[n][k]/combinari(n,k);
print.close();
return 0;
}