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}')