#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 weights[n];
for(int i = 0; i < n; i++)
{
cin>>profit[i];
}
for(int i = 0; i < n; i++)
{
cin>>weights[i];
}
knap sack[n];
for(int i = 0; i < n; i++)
{
sack[i].object = i;
sack[i].PbW = double(profit[i])/double(weights[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 >= weights[sack[i].object])
{
X[sack[i].object] = 1;
RW = RW - weights[sack[i].object];
i++;
}
else
{
X[sack[i].object] = double(RW)/double(weights[sack[i].object]);
RW = 0;
//i++;
}
}
for(int i = 0; i < n; i++)
{
cout<<X[i]<<" ";
}
cout<<endl;
double maxprofit = 0;
for(int i = 0; i < n; i++)
{
maxprofit = maxprofit + (X[i]*double(profit[i]));
}
cout<<maxprofit<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBrbmFwCnsKCiAgICBpbnQgb2JqZWN0OwogICAgZG91YmxlIFBiVzsKfTsKCmJvb2wgY29tcGFyZVBiVyhrbmFwIG4xLCBrbmFwIG4yKQp7CiAgICBpZihuMS5QYlcgPiBuMi5QYlcpcmV0dXJuIHRydWU7CiAgICBlbHNlIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbiwgbTsKICAgIGNpbj4+bj4+bTsKICAgIGludCBwcm9maXRbbl07CiAgICBpbnQgd2VpZ2h0c1tuXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luPj5wcm9maXRbaV07CiAgICB9CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbj4+d2VpZ2h0c1tpXTsKICAgIH0KCiAgICBrbmFwIHNhY2tbbl07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIHNhY2tbaV0ub2JqZWN0ID0gaTsKICAgICAgICBzYWNrW2ldLlBiVyA9IGRvdWJsZShwcm9maXRbaV0pL2RvdWJsZSh3ZWlnaHRzW2ldKTsKICAgIH0KCiAgICBzb3J0KHNhY2ssIHNhY2srbiwgY29tcGFyZVBiVyk7CgogICAgaW50IFJXID0gbTsKICAgIGRvdWJsZSBYW25dOwogICAgbWVtc2V0KFgsIDAuMCwgc2l6ZW9mKFgpKTsKICAgIGludCBpID0gMDsKICAgIHdoaWxlKCBSVyA+IDApCiAgICB7CiAgICAgICAgaWYoUlcgPj0gd2VpZ2h0c1tzYWNrW2ldLm9iamVjdF0pCiAgICAgICAgewogICAgICAgICAgICBYW3NhY2tbaV0ub2JqZWN0XSA9IDE7CiAgICAgICAgICAgIFJXID0gUlcgLSB3ZWlnaHRzW3NhY2tbaV0ub2JqZWN0XTsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBYW3NhY2tbaV0ub2JqZWN0XSA9IGRvdWJsZShSVykvZG91YmxlKHdlaWdodHNbc2Fja1tpXS5vYmplY3RdKTsKICAgICAgICAgICAgUlcgPSAwOwogICAgICAgICAgICAvL2krKzsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNvdXQ8PFhbaV08PCIgIjsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICBkb3VibGUgbWF4cHJvZml0ID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgbWF4cHJvZml0ID0gbWF4cHJvZml0ICsgKFhbaV0qZG91YmxlKHByb2ZpdFtpXSkpOwogICAgfQogICAgY291dDw8bWF4cHJvZml0PDxlbmRsOwoKCgoKfQo=
NyAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgNSAxNSA3IDYgMTggMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAzIDUgNyAxIDQgMSA=
7 15 10 5 15 7 6 18 3 2 3 5 7 1 4 1