#include <iostream>
using namespace std;
int main() {
// your code goes here
int n,m,F[100],a[100];
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=0;i<=m;i++) F[i]=0;
for (int i=1;i<=n;i++){
for (int j=m;j>=1;j--){
// F[i][j]=F[i-1][j];
if (j-a[i]>0) F[j]=max(F[j],a[i]+F[j-a[i]]);
cout<<F[j]<<" ";
}
cout<<endl;
}
cout<<F[m];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgbixtLEZbMTAwXSxhWzEwMF07CgljaW4+Pm4+Pm07Cglmb3IgKGludCBpPTE7aTw9bjtpKyspIGNpbj4+YVtpXTsKCWZvciAoaW50IGk9MDtpPD1tO2krKykgRltpXT0wOyAKCWZvciAoaW50IGk9MTtpPD1uO2krKyl7CgkgICBmb3IgKGludCBqPW07aj49MTtqLS0pewoJICAgCSAvLyBGW2ldW2pdPUZbaS0xXVtqXTsKCSAgIAkgIGlmIChqLWFbaV0+MCkgRltqXT1tYXgoRltqXSxhW2ldK0Zbai1hW2ldXSk7CgkgICAJICBjb3V0PDxGW2pdPDwiICI7CgkgICB9CgkgICBjb3V0PDxlbmRsOwp9Cgljb3V0PDxGW21dOwoJcmV0dXJuIDA7Cn0=