#include<stdio.h>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
int n,k,v[60],f[60][60][105];
bool b[60][60][105];
int dp(int l,int r,int k){
	if (b[l][r][k]) return f[l][r][k];
	b[l][r][k]=1;
	int &ans=f[l][r][k];
	ans=0;
	if (!k) return 0;
	if (l==r){
		if (k&&v[l]>0) return ans=v[l];
		return 0;
	}
	int te;
	te=dp(l+1,r,k-1)+v[l];
	if (te>ans) ans=te;
	te=dp(l,r-1,k-1)+v[r];
	if (te>ans) ans=te;
	if (k>1){
		te=dp(l+1,r,k-2);
		if (te>ans) ans=te;
		te=dp(l,r-1,k-2);
		if (te>ans) ans=te;
	}
	return ans;
}
int main(){
	scanf("%d%d",&n,&k);
	fo(i,1,n) scanf("%d",&v[i]);
	printf("%d\n",dp(1,n,k));
	return 0;
}