#include<bits/stdc++.h>
#define itn int
#define logn long
#define ll long long
using namespace std;
int n,t;
long long ans=0;
struct code{
int v,w,m;
double xjb;
}e[100005];
bool cmp(const code a,const code b){
if(a.xjb!=b.xjb )return a.xjb<b.xjb;
return a.w>b.w;
}
int main(){
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++){
scanf("%d%d%d",&e[i].v,&e[i].w,&e[i].m );
if(e[i].w>t)e[i].v=0;
e[i].xjb=(1.0*e[i].v )/(1.0*e[i].w );
}
sort(e+1,e+n+1,cmp);
for(int i=n;i>=1;i--){
if(e[i].w<=t){
if((t/e[i].w)<=e[i].m ){
ans+=(t/e[i].w)*e[i].v;
t-=(t/e[i].w)*e[i].w ;
}
else{
ans+=e[i].m*e[i].v;
t-=e[i].m*e[i].w;
}
}
}
printf("%lld\n",ans);
return 0;
}