각 과목의 마일리지를 내림차순으로 정렬합니다.
마일리지의 수가 l 보다 작다면 temp 배열에 1을 저장하고, 아니라면 l-1 번째 마일리지를 배열에 저장합니다.
저장된 배열을 오름차순으로 정렬합니다.
배열의 원소를 반복해서 저장하고 카운트를 1씩 늘려가다가 합이 m 보다 커진다면 반복을 멈추고 카운트에서 1를 빼준후, 카운트를 출력합니다.
n, m = map(int, input().split())
temp = []
Sum ,answer = 0, 0
for _ in range(n):
p, l = map(int, input().split())
mList = list(map(int, input().split()))
mList.sort(reverse=True)
if len(mList) < l:
temp.append(1)
else:
temp.append(mList[l-1])
temp.sort()
for t in temp:
Sum += t
answer += 1
if Sum > m:
answer -= 1
break
print(answer)