#include<bits/stdc++.h>
using namespace std;
struct knap{
int object;
double PbW;
};
bool comparePbW(knap n1, knap n2)
{
if(n1.PbW > n2. PbW) return true;
else return false;
}
int main()
{
int n, m;
cin>>n>>m;
int profit[n];
int weight[n];
for(int i = 0; i < n; i++)
{
cin>>profit[i];
}
for(int i = 0; i < n; i++)
{
cin>>weight[i];
}
knap sack[n];
for(int i = 0; i < n; i++)
{
sack[i].object = i;
sack[i].PbW = double(profit[i])/double(weight[i]);
}
sort(sack, sack+n, comparePbW);
int RW = m;
double X[n];
memset(X, 0.0, sizeof(X));
int i = 0;
while( RW > 0)
{
if(RW >= weight[sack[i].object])
{
X[sack[i].object] = 1;
RW = RW - weight[sack[i].object];
i++;
}
else
{
X[sack[i].object] = double(RW)/double(weight[sack[i].object]);
RW = 0;
}
}
for(int i = 0; i < n; i++)
{
cout<<X[i]<<" ";
}
double maxprofit = 0;
for(int i = 0; i < n; i++)
{
maxprofit = maxprofit + (X[i]*double(profit[i]));
}
cout<<endl<<maxprofit<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBrbmFwewogICAgaW50IG9iamVjdDsKICAgIGRvdWJsZSBQYlc7Cn07Cgpib29sIGNvbXBhcmVQYlcoa25hcCBuMSwga25hcCBuMikKewogICAgaWYobjEuUGJXID4gbjIuIFBiVykgcmV0dXJuIHRydWU7CiAgICBlbHNlIHJldHVybiBmYWxzZTsKfQoKCmludCBtYWluKCkKewogICAgaW50IG4sIG07CiAgICBjaW4+Pm4+Pm07CiAgICBpbnQgcHJvZml0W25dOwogICAgaW50IHdlaWdodFtuXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luPj5wcm9maXRbaV07CiAgICB9CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbj4+d2VpZ2h0W2ldOwogICAgfQoKICAgIGtuYXAgc2Fja1tuXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgc2Fja1tpXS5vYmplY3QgPSBpOwogICAgICAgIHNhY2tbaV0uUGJXID0gZG91YmxlKHByb2ZpdFtpXSkvZG91YmxlKHdlaWdodFtpXSk7CiAgICB9CgogICAgc29ydChzYWNrLCBzYWNrK24sIGNvbXBhcmVQYlcpOwoKICAgIGludCBSVyA9IG07CiAgICBkb3VibGUgWFtuXTsKICAgIG1lbXNldChYLCAwLjAsIHNpemVvZihYKSk7CiAgICBpbnQgaSA9IDA7CiAgICB3aGlsZSggUlcgPiAwKQogICAgewogICAgICAgIGlmKFJXID49IHdlaWdodFtzYWNrW2ldLm9iamVjdF0pCiAgICAgICAgewogICAgICAgICAgICBYW3NhY2tbaV0ub2JqZWN0XSA9IDE7CiAgICAgICAgICAgIFJXID0gUlcgLSB3ZWlnaHRbc2Fja1tpXS5vYmplY3RdOwogICAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFhbc2Fja1tpXS5vYmplY3RdID0gZG91YmxlKFJXKS9kb3VibGUod2VpZ2h0W3NhY2tbaV0ub2JqZWN0XSk7CiAgICAgICAgICAgIFJXID0gMDsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjb3V0PDxYW2ldPDwiICI7CiAgICB9CgogICAgZG91YmxlIG1heHByb2ZpdCA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIG1heHByb2ZpdCA9IG1heHByb2ZpdCArIChYW2ldKmRvdWJsZShwcm9maXRbaV0pKTsKICAgIH0KICAgIGNvdXQ8PGVuZGw8PG1heHByb2ZpdDw8ZW5kbDsKCgoKCgoKCgp9Cg==
NyAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgNSAxNSA3IDYgMTggMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAzIDUgNyAxIDQgMSA=
7 15 10 5 15 7 6 18 3 2 3 5 7 1 4 1