#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,n,w;
float x[101],c[101],p[101],t1[101],mn,ans;
cin >> t;
while(t--)
{
ans = 0;
mn = 101;
cin >> n >> w;
for(int i=0; i<n; i++)
{
cin >> c[i] >> p[i] >> t1[i];
x[i] = (c[i]*p[i])/t1[i];
mn = min(mn,t1[i]);
}
sort(x,x+n);
for(int i=n-1; i>=0; i--)
{
if(t1[i] <= w)
{
w -= t1[i];
ans += (c[i]*p[i]);
}
if(w == 0 || w < mn)
break;
}
cout << ans << endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgbWFpbigpCnsKCWludCB0LG4sdzsKCWZsb2F0IHhbMTAxXSxjWzEwMV0scFsxMDFdLHQxWzEwMV0sbW4sYW5zOwoJY2luID4+IHQ7Cgl3aGlsZSh0LS0pCgl7CgkJYW5zID0gMDsKCQltbiA9IDEwMTsKCQljaW4gPj4gbiA+PiB3OwoJCWZvcihpbnQgaT0wOyBpPG47IGkrKykKCQl7CgkJCWNpbiA+PiBjW2ldID4+IHBbaV0gPj4gdDFbaV07CgkJCXhbaV0gPSAoY1tpXSpwW2ldKS90MVtpXTsKCQkJbW4gPSBtaW4obW4sdDFbaV0pOwoJCX0KCQlzb3J0KHgseCtuKTsKCQlmb3IoaW50IGk9bi0xOyBpPj0wOyBpLS0pCgkJewoJCQlpZih0MVtpXSA8PSB3KQoJCQl7CgkJCQl3IC09IHQxW2ldOwoJCQkJYW5zICs9IChjW2ldKnBbaV0pOwoJCQl9CiAKCQkJaWYodyA9PSAwIHx8IHcgPCBtbikKCQkJCWJyZWFrOwoJCX0KCQljb3V0IDw8IGFucyA8PCBlbmRsOwoJfQp9