#include #include #include #include using namespace std; constexpr long long inf = 1e15; int main() { int n, p; cin >> n >> p; vector> rank(n, vector(4, 1)); for(auto& x : rank) { cin >> x[0] >> x[1] >> x[2]; } vector> dp(2, vector(p + 1, inf)); for(auto i = 0; i < 4 && i <= p; ++i) { dp[1][i] = rank[0][i]; } for(auto i = 2; i <= n; ++i) { for(auto j = 0; j <= p; ++j) { uint_fast64_t temp1 = dp[(i - 1) & 1][j] + rank[i - 1][0]; uint_fast64_t temp2 = j > 0 ? dp[(i - 1) & 1][j - 1] + rank[i - 1][1] : inf; uint_fast64_t temp3 = j > 1 ? dp[(i - 1) & 1][j - 2] + rank[i - 1][2] : inf; uint_fast64_t temp4 = j > 2 ? dp[(i - 1) & 1][j - 3] + rank[i - 1][3] : inf; dp[i & 1][j] = min({temp1, temp2, temp3, temp4}); } } cout << 1.00000 * dp[n & 1][p] / n << endl; return 0; }