#include <bits/stdc++.h>
using namespace std;
const int MaxN=1e5;
int dp[MaxN+1];
int main() {
int N,X;
cin>>N>>X;
vector<pair<int,int>> vec;
int m[N]; // money
int p[N]; // pages
for(int i=0;i<N;i++){
cin >> m[i];
}
for(int i=0;i<N;i++){
cin >> p[i];
vec.push_back({m[i],p[i]});
}
sort(vec.begin(),vec.end());
//for(int i=0;i<N;i++){
// cout << vec[i].first << " " << vec[i].second << '\n';
//}
dp[0]=0;
//int M=0;
for(int i=1;i<=X;i++){
dp[i]=0;
for(int j=N-1;j>=0;j--){
if(i-vec[j].first>=0 && dp[i]<dp[i-vec[j].first]+vec[j].second){
dp[i]=dp[i-vec[j].first]+vec[j].second;
if(i==X){
cout << dp[i-vec[j].first] << ' ' << vec[j].second << '\n';
}
}
}
}
for(int i=1;i<=X;i++){
cout << dp[i] << " ";
}
// cout << dp[X] << '\n';
}
/*
0 1 2 3 4 5 6 7 8 9 10
0 0 0 1 5 */
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4Tj0xZTU7CmludCBkcFtNYXhOKzFdOwppbnQgbWFpbigpIHsKCWludCBOLFg7CgljaW4+Pk4+Plg7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gdmVjOwoJaW50IG1bTl07IC8vIG1vbmV5CglpbnQgcFtOXTsgLy8gcGFnZXMKCWZvcihpbnQgaT0wO2k8TjtpKyspewoJCWNpbiA+PiBtW2ldOwoJfQoJZm9yKGludCBpPTA7aTxOO2krKyl7CgkJY2luID4+IHBbaV07CgkJdmVjLnB1c2hfYmFjayh7bVtpXSxwW2ldfSk7Cgl9Cglzb3J0KHZlYy5iZWdpbigpLHZlYy5lbmQoKSk7CgkvL2ZvcihpbnQgaT0wO2k8TjtpKyspewoJLy8JY291dCA8PCB2ZWNbaV0uZmlyc3QgPDwgIiAiIDw8IHZlY1tpXS5zZWNvbmQgPDwgJ1xuJzsKCS8vfQoJZHBbMF09MDsKCS8vaW50IE09MDsKCWZvcihpbnQgaT0xO2k8PVg7aSsrKXsKCQlkcFtpXT0wOwoJCWZvcihpbnQgaj1OLTE7aj49MDtqLS0pewoJCQlpZihpLXZlY1tqXS5maXJzdD49MCAmJiBkcFtpXTxkcFtpLXZlY1tqXS5maXJzdF0rdmVjW2pdLnNlY29uZCl7CgkJCQlkcFtpXT1kcFtpLXZlY1tqXS5maXJzdF0rdmVjW2pdLnNlY29uZDsKCQkJCWlmKGk9PVgpewoJCQkJCWNvdXQgPDwgZHBbaS12ZWNbal0uZmlyc3RdIDw8ICcgJyA8PCB2ZWNbal0uc2Vjb25kIDw8ICdcbic7CgkJCQl9CgkJCX0KCQl9Cgl9Cglmb3IoaW50IGk9MTtpPD1YO2krKyl7CgkJY291dCA8PCBkcFtpXSA8PCAiICI7Cgl9Ci8vCWNvdXQgPDwgZHBbWF0gPDwgJ1xuJzsKfQovKgowIDEgMiAzIDQgNSA2IDcgOCA5IDEwCjAgMCAwIDEgNSAqLwo=