#include #include #include #define repeat(i,n) for (int i = 0; (i) < int(n); ++(i)) typedef long long ll; using namespace std; template void setmin(T & a, T const & b) { if (b < a) a = b; } const int inf = 1e9+7; int main() { int n, p; scanf("%d%d", &n, &p); vector > th(n); repeat (i,n) { repeat (j,3) scanf("%d", &th[i][j]); th[i][3] = 1; } vector cur(p+1, inf); vector prv; cur[0] = 0; repeat (i,n) { cur.swap(prv); cur.clear(); cur.resize(p+1, inf); repeat (k,p+1) { repeat (j,4) if (k+j < p+1) { setmin(cur[k+j], prv[k] + th[i][j]); } } } printf("%.8lf\n", cur[p] /(double) n); return 0; }