function Main(input) {
  var dataList = input.split("\n");
//  dataList.shift();
  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;
  
  var jwellTable = operate({ dequeue: jwells.slice(), hands: [] }, 1);
  
  function operate(state, openum) {
    if (state === null) return null;
    if (openum > operationNum) return state;
    var results = [];
    for (var j = 0; j < jwells.length; j++) {
      results.push([]);
      for (var k = 0; k < 4; k++) {
        results[j].push({ dequeue: state.dequeue.slice(), hands: state.hands.slice()});
        if ((k % 4) === 0) if (!A(results[j][k])) results[j][k] = null; 
        if ((k % 4) === 1) if (!B(results[j][k])) results[j][k] = null; 
        if ((k % 4) === 2) if (!C(results[j][k], jwells[j])) results[j][k] = null; 
        if ((k % 4) === 3) if (!D(results[j][k], jwells[j])) results[j][k] = null; 
        if (results[j][k] !== null) {
          var total = sumDequeue(results[j][k].hands);
          if (max < total) {
            console.log(results[j][k]);
            max = total;
          }
        }
        results[j][k] = operate(results[j][k], openum + 1);
      }
    }
    return results;
  }  
  
//  console.log(jwellTable);
/*
  checkTable(jwellTable);
  function checkTable(table) {
    if (table === null) return;
    if (Array.isArray(table)) {
      for (var j = 0; j < jwells.length; j++) {
        for (var k = 0; k < 4; k++) {
          checkTable(table[j][k]);
        }
      }    
    } else {
      var total = sumDequeue(table.hands);
      if ((max === null) || (max < total)) {
        console.log(table);
        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;
    var hands = result.hands;    
    if (dequeue.length === 0) return false;
    hands.push(dequeue.shift());
    return true;
  }
  function B (result) {
    var dequeue = result.dequeue;
    var hands = result.hands;    
    if (dequeue.length === 0) return false;
    hands.push(dequeue.pop());
    return true;
  }
  function C (result, choice) {
    var dequeue = result.dequeue;
    var hands = result.hands;    
    if (hands.length === 0) return false;
    var index = check(hands, choice);
    if (index === -1)  return false;
    dequeue.unshift(hands.splice(index ,1)[0]);
    return true;
  }
  function D (result, choice) {
    var dequeue = result.dequeue;
    var hands = result.hands;    
    if (hands.length === 0) return false;
    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"));