#include<cstdio>
#define max(a,b) (a>b?a:b)
using namespace std;
const int MAXW=40005;
int dp[MAXW];
int main() {
int n,W;
scanf("%d %d",&n,&W);
for(int i=1;i<=n;i++) {
int v,w,m;
scanf("%d %d %d",&v,&w,&m);
int k=1;
for(int k=1;k<=m;k*=2,m-=k)
for(int j=W;j>=w*k;j--)
dp[j]=max(dp[j],dp[j-w*k]+v*k);
if(m>0)
for(int j=W;j>=w*m;j--)
dp[j]=max(dp[j],dp[j-w*m]+v*m);
}
printf("%d",dp[W]);
return 0;
}