#include<bits/stdc++.h>
using namespace std;
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];
}
int sack[n+1][m+1];
for(int i = 0; i < n+1; i++)
{
sack[i][0] = 0;
}
for(int j = 0; j < m+1; j++)
{
sack[0][j] = 0;
}
for(int i = 1; i < n+1; i++)
{
for(int j = 1; j < m+1; j++)
{
if(weight[i-1] > j)
{
sack[i][j] = sack[i-1][j];
}
else
{
sack[i][j] = max(sack[i-1][j], sack[i-1][j-weight[i-1]] + profit[i-1]);
}
}
}
for(int i = 0; i < n+1; i++)
{
for(int j = 0; j < m+1; j++)
{
cout<<sack[i][j]<<" ";
}
cout<<endl;
}
cout<<sack[n][m]<<endl;
int i = n, j = m;
while( i > 0)
{
if(sack[i][j] == sack[i-1][j])
{
i = i-1;
continue;
}
else
{
cout<<"Object "<<i<<" is selected"<<endl;
j = j - weight[i-1];
i = i-1;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKQp7CiAgICBpbnQgbiwgbTsKICAgIGNpbj4+bj4+bTsKICAgIGludCBwcm9maXRbbl07CiAgICBpbnQgd2VpZ2h0W25dOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4+PnByb2ZpdFtpXTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luPj53ZWlnaHRbaV07CiAgICB9CgogICAgaW50IHNhY2tbbisxXVttKzFdOwogICAgZm9yKGludCBpID0gMDsgaSA8IG4rMTsgaSsrKQogICAgewogICAgICAgIHNhY2tbaV1bMF0gPSAwOwogICAgfQogICAgZm9yKGludCBqID0gMDsgaiA8IG0rMTsgaisrKQogICAgewogICAgICAgIHNhY2tbMF1bal0gPSAwOwogICAgfQoKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuKzE7IGkrKykKICAgIHsKICAgICAgICBmb3IoaW50IGogPSAxOyBqIDwgbSsxOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZih3ZWlnaHRbaS0xXSA+IGopCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNhY2tbaV1bal0gPSBzYWNrW2ktMV1bal07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzYWNrW2ldW2pdID0gbWF4KHNhY2tbaS0xXVtqXSwgc2Fja1tpLTFdW2otd2VpZ2h0W2ktMV1dICsgcHJvZml0W2ktMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuKzE7IGkrKykKICAgIHsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgbSsxOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBjb3V0PDxzYWNrW2ldW2pdPDwiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CiAgICB9CgogICAgY291dDw8c2Fja1tuXVttXTw8ZW5kbDsKCiAgICBpbnQgaSA9IG4sIGogPSBtOwogICAgd2hpbGUoIGkgPiAwKQogICAgewogICAgICAgIGlmKHNhY2tbaV1bal0gPT0gc2Fja1tpLTFdW2pdKQogICAgICAgIHsKICAgICAgICAgICAgaSA9IGktMTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PCJPYmplY3QgIjw8aTw8IiBpcyBzZWxlY3RlZCI8PGVuZGw7CiAgICAgICAgICAgIGogPSBqIC0gd2VpZ2h0W2ktMV07CiAgICAgICAgICAgIGkgPSBpLTE7CgogICAgICAgIH0KICAgIH0KCgoKCgoKCgp9Cg==