#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
int w[5500],v[5500];
int dp[6500]={0};
int size=0;
while(n--){
int tw,tv,k,c=1;
scanf("%d%d%d",&tw,&tv,&k);
while(k-c>0){
k-=c;
w[size]=c*tw;
v[size++]=c*tv;
c*=2;
}
w[size]=k*tw;
v[size++]=k*tv;
}
int i,j;
for(i=0;i<size;i++){
for(j=m;j>=w[i];j--){
dp[j]=dp[j]>(dp[j-w[i]]+v[i])?
dp[j]:(dp[j-w[i]]+v[i]);
}
}
printf("%d\n",dp[m]);
}
return 0;
}
/**************************************************************
Problem: 2077
User: admin
Language: C
Result: Accepted
Time:67 ms
Memory:1144 kb
****************************************************************/