#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;
}