# 背包问题: Thing_number, Weight = map(int, input().split()) list_thing = [] for i in range(Thing_number): temp = list(map(int, input().split())) list_thing.append(temp) list_all = [] for i in range(Thing_number): for j in range(list_thing[i][0]): # 截取子数组中的第2个元素和第三个元素 list_temp = list_thing[i][1:3] # 将列表放到新列表 list_all 中 list_all.append(list_temp) # 有多少个种类可以选择 vorirty = len(list_all) dp = [[0 for i in range(Weight+1)] for i in range(vorirty+1)] list_all.insert(0,0) for i in range(1,vorirty+1): for j in range(1,Weight+1): if(list_all[i][0]<=j): dp[i][j] = max(dp[i - 1][j], list_all[i][1] + dp[i - 1][j - list_all[i][0]]) else: dp[i][j] = dp[i - 1][j] print(dp[vorirty][Weight])