#include #include #include #include using namespace std; #define REP(i,s,e) for (i = s; i <= e; i++) #define rep(i,n) REP (i,0,(int)(n)-1) #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP (i,(int)(n)-1,0) #define INF (int)1e8 #define MOD (int)(1e9+7) typedef long long ll; int w[3000]; int n; int dfs(int pre, int now, int m, bool fst) { int ret1, ret2 = -INF; if (now < n) { ret1 = dfs(pre,now+1,m,fst); if (m > 0) ret2 = dfs(now,now+1,m-1,fst) + (pre + 1 == now ? w[pre] : 0); } else if (m > 0) ret1 = -INF; else ret1 = fst && pre + 1 == now ? w[n-1] : 0; return max(ret1,ret2); } int main(void) { int i, m; cin >> n >> m; rep (i,n) cin >> w[i]; cout << max(dfs(0,1,m-1,true),dfs(-1,1,m,false)) << endl; return 0; }