# 背包问题:
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])