function Main(input) {
  var dataList = input.split("\n");
  dataList.pop();
  var data = dataList[0].split(" ");
  var jwellNum = parseInt(data[0]);
  var operationNum = parseInt(data[1]);
  var jwells = dataList[1].split(" ").map( str => parseInt(str) );
  var max = 0;
  
  operate({ dequeue: jwells.slice(), hands: [] }, 1);
  function operate(state, openum) {
    if (state === null) return null;
    if (openum > operationNum) return null;
    for (var k = 0; k < 4; k++) {
      if (k === 0) {
        var copyState = { dequeue: state.dequeue.slice(), hands: state.hands.slice()};
        if (!A(copyState)) copyState = null; 
        checkTotal(copyState);
        operate(copyState, openum + 1);        
      } else if (k === 1) {
        var copyState = { dequeue: state.dequeue.slice(), hands: state.hands.slice()};
        if (!B(copyState)) copyState = null; 
        checkTotal(copyState);
        operate(copyState, openum + 1);        
      } else if (k === 2) {
        for (var j = 0; j < state.hands.length; j++) {
          var copyState = { dequeue: state.dequeue.slice(), hands: state.hands.slice()};
          if (!C(copyState, copyState.hands[j])) copyState = null; 
          checkTotal(copyState);
          operate(copyState, openum + 1);        
        }
      } else {
        for (var j = 0; j < state.hands.length; j++) {
          var copyState = { dequeue: state.dequeue.slice(), hands: state.hands.slice()};
          if (!D(copyState, copyState.hands[j])) copyState = null; 
          checkTotal(copyState);
          operate(copyState, openum + 1);        
        }
      }
    }
    function checkTotal(result) {
      if (result !== null) {
        var total = sumDequeue(result.hands);
        if (max < total) {
          max = total;
        }
      }      
    }
  }  
  console.log(max);
  function sumDequeue(hands) {
    var total = 0;
    for (var i = 0; i < hands.length; i++) {
      total = total + hands[i];
    }
    return total;
  }
  
  function A (result) {
    var dequeue = result.dequeue;
    if (dequeue.length === 0) return false;
    var hands = result.hands;    
    hands.push(dequeue.shift());
    return true;
  }
  function B (result) {
    var dequeue = result.dequeue;
    if (dequeue.length === 0) return false;
    var hands = result.hands;    
    hands.push(dequeue.pop());
    return true;
  }
  function C (result, choice) {
    var hands = result.hands;    
    if (hands.length === 0) return false;
    var dequeue = result.dequeue;
    var index = check(hands, choice);
    if (index === -1)  return false;
    dequeue.unshift(hands.splice(index ,1)[0]);
    return true;
  }
  function D (result, choice) {
    var hands = result.hands;    
    if (hands.length === 0) return false;
    var dequeue = result.dequeue;
    var index = check(hands, choice);
    if (index === -1)  return false;
    dequeue.push(hands.splice(index ,1)[0]);
    return true;
  }
  function check(b, choice) {
    for (var i = 0; i < b.length; i++) {
      if( b[i] === choice) return i; 
    }
    return -1;
  }
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));