n,s=gets.split.map &:to_i def f n,ofs d={0=>[[]]} n.times{|i|c=gets.to_i;d.dup.map{|k,v|d[k+c]=(d[k+c]||[])+v.map{|j|j+[i+1+ofs]}}} d end d1=f n/2,0 d2=f (n+1)/2,n/2 puts d1.flat_map{|k,v|(t=d2[s-k])?v.product(t).map{|i,j|i+j}:[]}.sort.map{|i|i*" "}