#include using namespace std; int n,p; int abc[5005][4]; int dp[15005]; int dpn[15005]; const int INF = 1e9; int main() { cin >> n >> p; for(int i = 0; i < n; i++) { for(int j = 0; j < 3; j++) { cin >> abc[i][j]; } abc[i][3] = 1; } fill(dpn,dpn+p+1,INF); for(int i = 0; i < n; i++) { for(int j = 0; j <= p; j++) { for(int k = 0; k < 4; k++) { if(j + k > p) continue; dpn[j+k] = min(dpn[j+k], dp[j] + abc[i][k]); } } for(int k = 0; k <= p; k++) { swap(dpn[k],dp[k]); dpn[k] = INF; } } cout << fixed << setprecision(6) << dp[p] / (double)n << endl; }