'use strict'

/////////////////////////////////////
//コピペスペース//////////////////////

//定数
const INF  =  900719925474099 // Math.floor(Number.MAX_SAFE_INTEGER / 10);

//スペース区切りの数字列を数字の配列にして返す
function mapint(line){return line.split(' ').map((v)=>parseInt(v));}

//コピペスペース//////////////////////
/////////////////////////////////////

function Main(input){
	let temp = input.trim().split('\n');
	let temp2 = mapint(temp[0]);
	let n = temp2.shift();
	let k = temp2.shift();
	let v = mapint(temp[1]);

	//console.log(n,k,v);
	
	let a,b,r;
	r = Math.min(n,k);

	let max = 0;

	for(a=0;a<=r;a++){
		for(b=0;a+b<=r;b++){
			//左からa個、右からb個取り出す
			let v2 = [...v.slice(0,a),...v.slice(n-b)];
			//console.log(v2);
			//余った回数分、負の数を取り除く
			let kk = k-a-b;
			v2.sort((a,b)=>b-a);
			for(let i=v2.length-1;i>=0;i--){
				if(kk-- <= 0) break;
				if(v2[i] >= 0) break;
				v2.pop();
			}

			//最大値か判断
			let sum = 0;
			for(let i=v2.length-1;i>=0;i--){
				sum += v2[i];
			}
			max = Math.max(sum,max);
			//console.log(sum);
		}
	}
	console.log(max);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
