const fi='tongp.inp';
fo='tongp.out';
var a,x,b:array[1..100000] of longint;
n,p,i,max,t:longint;
f:text;
procedure ghinghiem;
var j:longint;
begin
t:=0;
for j:=1 to n do
if x[j]>0 then t:=t+a[j];
if (t>=max) and (t<=p) then
begin
max:=t;
move(x,b,sizeof(x));
end;
end;
procedure chay(i:longint);
var j:integer;
begin
for j:=1 downto 0 do
begin
x[i]:=j;
if i=n then ghinghiem
else chay(i+1);
end;
end;
begin
assign(f,fi);reset(f);readln(f,n,p);
for i:=1 to n do read(f,a[i]);close(f);
assign(f,fo);rewrite(f);
max:=0;
chay(1);
writeln(f,max);
for i:=1 to n do
if b[i]=1 then write(f,i,' ');
close(f);
end.