[//]: # 二进制枚举优化
蓝桥杯的课先写过金明那题,遂优化,发现能过,O(NMlogS)的样子
n, m = map(int, input().split())
dp = [0] * (m + 1)
for _ in range(n):
v, w, s = map(int, input().split())
k = 1
while k <= s:
current_v = k * v
current_w = k * w
for j in range(m, current_v - 1, -1):
dp[j] = max(dp[j], dp[j - current_v] + current_w)
s -= k
k *= 2
if s > 0:
current_v = s * v
current_w = s * w
for j in range(m, current_v - 1, -1):
dp[j] = max(dp[j], dp[j - current_v] + current_w)
print(dp[m])