#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define rep(i, n) for (int i = 0; i < n; ++i) #define rrep(i, st, n) for (int i = st; i < n; ++i) using pii = pair; const int inf = 1e9 + 7; int dy[] = {0, 0, -1, 1, -1, 1, -1, 1}; int dx[] = {1, -1, 0, 0, -1, 1, 1, -1}; #define ceil(a, b) a / b + !!(a % b) #define chmax(a, b) a = max(a, b) #define chmin(a, b) a = min(a, b) int v[5000][4], n; int memo[5000][15001]; int dfs(int d, int r){ if (d == n) return 0; if (!memo[d][r]){ memo[d][r] = inf; //int rem = (n - d) * 3; /*if ( rem >= r)*/ for (int i = 0; i <= (r < 3 ? r : 3); i++) chmin(memo[d][r], dfs(d + 1, r - i) + v[d][i]); } return memo[d][r]; } int main(){ int k; cin >> n >> k; for(int i = 0; i < n; v[i][3] = 1, i++) rep(j, 3) cin >> v[i][j]; cout << dfs(0, k) * 1.0 / n << endl; }