max(a,b){return a>b?a:b;} n,m,w[3001]; i,j,k,d[3001][3001][4]; main(){ for(i=0;i<3001;++i) for(j=0;j<3001;++j) for(k=0;k<4;++k) d[i][j][k]=-1e9; scanf("%d%d",&n,&m); for(i=1;i<=n;++i)scanf("%d",w+i); d[1][0][0]=0; d[1][1][3]=0; for(i=2;i<=n;++i){ for(j=1;j<=m;++j){ d[i][j][0]=max(d[i-1][j][0],d[i-1][j][1]); d[i][j][1]=max(d[i-1][j-1][0],d[i-1][j-1][1]+w[i-1]); d[i][j][2]=max(d[i-1][j][2],d[i-1][j][3]); d[i][j][3]=max(d[i-1][j-1][2],d[i-1][j-1][3]+w[i-1]); } } printf("%d",max( max(d[n][m][0],d[n][m][1]), max(d[n][m][2],d[n][m][3]+w[n]) )); }