#include <bits/stdc++.h>
#define maxn 100010
using namespace std;
int n, W, v[maxn], w[maxn], size, dp[maxn];
int main() {
cin >> n >> W;
for (int i = 1; i <= n; i++) {
int c = 1, p, h, k;
cin >> p >> h >> k;
while (k > c) {
k -= c;
w[++size] = c * p;
v[size] = c * h;
c *= 2;
}
w[++size] = p * k;
v[size] = h * k;
}
for(int i = 1; i <= size; i++)
for(int j = W; j >= w[i]; j--)
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
cout << dp[W];
return 0;
}