def main(): import sys input = sys.stdin.read().split() idx = 0 N = int(input[idx]) idx += 1 P = int(input[idx]) idx += 1 a_list = [] b_list = [] c_list = [] for _ in range(N): a = int(input[idx]) idx += 1 b = int(input[idx]) idx += 1 c = int(input[idx]) idx += 1 a_list.append(a) b_list.append(b) c_list.append(c) INF = float('inf') current = [INF] * (P + 1) current[0] = 0.0 for i in range(N): a = a_list[i] b = b_list[i] c = c_list[i] remaining = (N - 1) - i # Remaining contests after this one min_s_new = max(0, P - 3 * remaining) next_dp = [INF] * (P + 1) for s_prev in range(P + 1): if current[s_prev] == INF: continue for x in 0, 1, 2, 3: s_new = s_prev + x if s_new > P: continue if s_new < min_s_new: continue if x == 3: rank = 1 elif x == 0: rank = a elif x == 1: rank = b else: rank = c if current[s_prev] + rank < next_dp[s_new]: next_dp[s_new] = current[s_prev] + rank current = next_dp print("{0:.10f}".format(current[P] / N)) if __name__ == '__main__': main()