#include <bits/stdc++.h>
#define ll long long
#define maxn 1000005
#define endl "\n"
using namespace std;
int n, w, a[105], c[105], b[105], ress = INT_MIN;
vector<vector<int>>kq;
void backtrack(int i, int sum, int ans, vector<int>res){
if(i == n + 1){
if(ans > ress){
ress = ans;
kq.push_back(res);
}
return;
}
//chọn ai
if(sum + a[i] <= w){
res.push_back(1);
backtrack(i + 1, sum + a[i], ans + c[i], res);
res.pop_back();
}
//không chọn ai
if(sum <= w){
res.push_back(0);
backtrack(i + 1, sum, ans, res);
res.pop_back();
}
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> w;
for(int i = 1; i <= n; ++i) cin >> c[i];
for(int i = 1; i <= n; ++i) cin >> a[i];
backtrack(1, 0, 0, {});
cout << ress << endl;
for(auto x : kq[kq.size() - 1])
cout << x << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbWF4biAxMDAwMDA1CiNkZWZpbmUgZW5kbCAiXG4iCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbiwgdywgYVsxMDVdLCBjWzEwNV0sICBiWzEwNV0sIHJlc3MgPSBJTlRfTUlOOwp2ZWN0b3I8dmVjdG9yPGludD4+a3E7CnZvaWQgYmFja3RyYWNrKGludCBpLCBpbnQgc3VtLCBpbnQgYW5zLCB2ZWN0b3I8aW50PnJlcyl7CiAgICBpZihpID09IG4gKyAxKXsKICAgICAgICBpZihhbnMgPiByZXNzKXsKICAgICAgICAgICAgcmVzcyA9IGFuczsKICAgICAgICAgICAga3EucHVzaF9iYWNrKHJlcyk7IAogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CiAgICAvL2No4buNbiBhaQogICAgaWYoc3VtICsgYVtpXSA8PSB3KXsKICAgICAgICByZXMucHVzaF9iYWNrKDEpOwogICAgICAgIGJhY2t0cmFjayhpICsgMSwgc3VtICsgYVtpXSwgYW5zICsgY1tpXSwgcmVzKTsKICAgICAgICByZXMucG9wX2JhY2soKTsKICAgIH0KICAgIC8va2jDtG5nIGNo4buNbiBhaQogICAgaWYoc3VtIDw9IHcpewogICAgICAgIHJlcy5wdXNoX2JhY2soMCk7CiAgICAgICAgYmFja3RyYWNrKGkgKyAxLCBzdW0sIGFucywgcmVzKTsKICAgICAgICByZXMucG9wX2JhY2soKTsKICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgY2luID4+IG4gPj4gdzsgCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IGNbaV07CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IGFbaV07CiAgICBiYWNrdHJhY2soMSwgMCwgMCwge30pOwogICAgY291dCA8PCByZXNzIDw8IGVuZGw7CiAgICBmb3IoYXV0byB4IDoga3Fba3Euc2l6ZSgpIC0gMV0pCiAgICAgICAgY291dCA8PCB4IDw8ICIgIjsKICAgIHJldHVybiAwOwp9