#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
using namespace std;

int main(){
  int n, k;
  cin >> n >> k;
  vector<int>v(n);
  for(int i=0; i<n; i++)cin >> v[i];
  int a=min(n, k);
  vector<int>f;
  int ret=0;
  for(int l=0; l<=a; l++){
    for(int r=0; r<=a-l; r++){
      for(int m=0; m<=k-l-r; m++){
        if(m>l+r)break;
        f.resize(0);
        for(int i=0; i<l; i++)f.push_back(v[i]);
        for(int i=0; i<r; i++)f.push_back(v[n-1-i]);
        sort(f.rbegin(), f.rend());
        ret=max(ret, accumulate(f.begin(), f.begin()+l+r-m, 0));
      }
    }
  }
  cout << ret;
  return 0;
}