package work2;
import java.util.*;
public class zhuangzai {
int bestwx[];
int bestw;
int x[];
int n;
int r;
int cw;
int w[];
int c;
public zhuangzai(int n,int c,int []w) {
this.n=n;
this.w=w;
this.c=c;
x=new int[n+1];
bestwx=new int[n+1];
for(int i=1;i<=n;i++) {
x[i]=i;
}
r=0;
for(int i=1;i<=n;i++) {
r+=w[i];
}
cw=0;
bestw=0;
}
public void backtrack(int i)
{
if(i>n) {
if(bestw<cw) {
bestw=cw;
}
for(int j=1;j<=n;j++) {
bestwx[j]=x[j];
}
return;
}
r-=w[i];
if(cw+w[i]<=c) {
x[i]=1;
cw+=w[i];
backtrack(i+1);
cw-=w[i];
}
if(cw+r>bestw) {
x[i]=0;
backtrack(i+1);
}
r+=w[i];
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int c=sc.nextInt();
int w[]=new int[n+1];
for(int i=1;i<=n;i++) {
w[i]=sc.nextInt();
}
zhuangzai zq=new zhuangzai(n,c,w);
zq.backtrack(1);
for(int i=1;i<=n;i++) {
System.out.print(zq.bestwx[i]+" ");
}
System.out.println();
System.out.println("最优装载:"+zq.bestw);
}
}