import sys
import itertools
from numpy.random import choice
basic_std=list(input().split())
nums_of_mid=int(basic_std[0])
risk_rank=float(basic_std[1])
j=[]
for i in range(nums_of_mid):
data=input().split()
k=int(data[0])
methods=[]
idx=1
for _ in range(k):
name=data[idx]
risk=eval(data[idx+1])
cost=eval(data[idx+2])
methods.append((risk,cost))
idx+=3
j.append(methods)
all_combinations = list(itertools.product(*j))
lest=float('inf')
for i, combination in enumerate(all_combinations, 1):
# 计算第一个数的和
sum_first = sum(t[0] for t in combination)
if sum_first >risk_rank:
continue
# 计算第二个数的和
sum_second = sum(t[1] for t in combination)
if lest>sum_second:
lest=sum_second
print(f'{lest:.2f}')