# -*- 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)