#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in") ;
ofstream fout("dezastru.out") ;
int n , m , k , uz[30] , a[30] , x ;
double v[30] , s = 1 , b[850] ;
void bk(int k)
{
for(int i=1; i<=n; i++)
if(uz[i] == 0)
{
uz[i] = 1 ;
a[k] = i ;
if(k==n)
{
for(int j=1; j<=m; j++)
s = s * v[a[j]] ;
x ++ ;
b[x] = s ;
s = 1 ;
}
else bk(k+1) ;
uz[i] = 0 ;
}
}
int main()
{
fin >> n >> m ;
for(int i=1; i<=n; i++)
fin >> v[i] ;
bk(1) ;
s = 0 ;
for(int i=1; i<=x; i++)
s = s + (b[i] / x) ;
fout << fixed << setprecision(6) << s ;
return 0;
}