# -*- coding: utf-8 -*-

N, P = map(int, raw_input().split())

dp = [[10**9 + 7]*(P + 5) for i in xrange(N)]
for i in xrange(N):
    a, b, c = map(int, raw_input().split())
    if i == 0:
        dp[0][:4] = [a, b, c, 1]
        continue
    for j in xrange(min(3*(i + 1), P + 1)):
        dp[i][j] = min(dp[i][j], dp[i - 1][j] + a)
        if j > 0: dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + b)
        if j > 1: dp[i][j] = min(dp[i][j], dp[i - 1][j - 2] + c)
        if j > 2: dp[i][j] = min(dp[i][j], dp[i - 1][j - 3] + 1)

print "%.10f" % (1.0*dp[N - 1][P]/N)