#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a vector make_v(size_t a){return vector(a);} template auto make_v(size_t a,Ts... ts){ return vector(ts...))>(a,make_v(ts...)); } template typename enable_if::value==0>::type fill_v(T &t,const V &v){t=v;} template typename enable_if::value!=0>::type fill_v(T &t,const V &v){ for(auto &e:t) fill_v(e,v); } //INSERT ABOVE HERE signed main(){ int n,l; scanf("%d %d",&n,&l); l*=60; vector v(n); int sum=0; for(int i=0;i(n+1,n+1,l+1); vector fact(n+1,1); for(int i=1;i<=n;i++) fact[i]=fact[i-1]*i; D ans=0; for(int t=0;t=l){ if(i+1==n) ans+=dp[i][j][k]*(j+1)*fact[j]*fact[n-(j+1)]; }else{ dp[i+1][j+1][k+v[i]]+=dp[i][j][k]; } } } } swap(v[t],v.back()); } printf("%.12Lf\n",ans/fact[n]); return 0; }