#include <math.h>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 105;int c[N],n,f;double t[N];double dp[20005];inline int cost(int i){ return (1+sqrt(5.0)) / 2 * c[i] * c[i];}double dfs(int fight){ if(dp[fight] != 0) return dp[fight]; double ret = 0; for(int i=0;i<n;i++) if(fight > c[i]) ret += t[i]; else ret += 1 + dfs(fight+c[i]); return dp[fight] = ret / n;}int main(){ while(~scanf("%d%d",&n,&f)) { memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { scanf("%d",&c[i]); t[i] = cost(i); } printf("%.3fn",dfs(f)); } return 0;}


