#include<bits/stdc++.h>
using namespace std;
struct l{
int v,w,m;
}a[10000007];
int dp[10000007];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i].v>>a[i].w>>a[i].m;
for(int i=1;i<=n;i++)
for(int k=1;k<=a[i].m;k++)
for(int j=m;j>=a[i].w;j--)
dp[j]=max(dp[j],dp[j-a[i].w]+a[i].v);
cout<<dp[m]<<"\n";
return 0;
}