n,c=gets.split.map &:to_i l=gets.split.map &:to_i w=gets.split.map &:to_i d=[0]*999999 (0...n).each{|i|(0...n).each{|j|(0...n).each{|k|d[b=(w[i]+w[j]+w[k])<<12|(y=l[j])<<6|(z=l[k])]=[d[b],(x=l[i])!=z&&0<(x-y)*(z-y)?x+y+z:0].max}}} (0..c).each{|a|(0..50).each{|x|(0..50).each{|y|(0...n).each{|i|d[b=a+w[i]<<12|y<<6|(z=l[i])]=[d[b],(e=d[a<<12|x<<6|y])>0&&x!=z&&0<(x-y)*(z-y)?e+z:0].max}}}} p (0..c).map{|a|d[a<<12,2048].max}.max