I=lambda:map(int,raw_input().split());n,m=I();w=I() def f(s): D={(m-s,s):0} for i in xrange(n-1): T={} for (k,h),v in D.iteritems(): for l in xrange(2): if 0<=k-l<n-1-i: nk=(k-l,l);nv=v+w[i]*h*l if nk not in T or T[nk]<nv:T[nk]=nv D=T return max(v+h*s*w[n-1]for(k,h),v in D.items()) print[[max(f(0),f(1)),sum(w)][m==n],0][m==0]