include[HTML_REMOVED]
define pb push_back
using namespace std;
const int N=2005;
int w[N],v[N],s[N];
int dp[N];
struct node
{
int v,w;
};
vector[HTML_REMOVED] G;
int main()
{
int n,m;
cin>>n>>m;
int v,w,s;
for(int i=0;i[HTML_REMOVED]>v>>w>>s;
for(int k=1;k<=s;k=2)
{
G.pb((node){vk,wk});
s-=k;
}
if(s) G.pb((node){vs,w*s});
}
for(int i=0;i[HTML_REMOVED]=G[i].v;j–)
{
dp[j]=max(dp[j],dp[j-G[i].v]+G[i].w);
}
}
cout<<dp[m]<<endl;
}