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(r,h),v in D.iteritems(): for l in[0,1]: if 0<=r-l<n-1-i: k=(r-l,l);u=v+w[i]*h*l if k not in T or T[k]<u:T[k]=u D=T return max(v+h*s*w[n-1]for(k,h),v in D.items()) print max(f(0),f(1))if(n>m)*(m>0)else[0,sum(w)][m>0]