#include <iostream>
#include <vector>

using namespace std;

int getMaxP(vector<int> order) {
    int minP = 100000;
    int res = 0;
    for(int i = 0; i < order.size() - 1; i++) {
        res += order.at(i);
        minP = min(minP, order.at(i));
    }
    return res - 2 * minP;
}

int getOrder(vector<int> order, int K, int N, int a[], int i) {
    if(K == 0) return getMaxP(order);
    else {
        int res = 0;
        for(int j = 0; j < i; j++) {
            order.push_back(a[j]);
            res = max(res, getOrder(order, K - 1, N, a, i));
        }
        for(int j = i + 1; j < N; j++) {
            order.push_back(a[j]);
            res = max(res, getOrder(order, K - 1, N, a, i));
        }
       return res;
    }
}

int main()
{
    int K, N;
    cin >> N >> K;
    int a[N];
    for(int i = 0; i < N; i++){
        int x;
        cin >> x;
        a[i] = x;
    }

    int res = 0;
    for(int i = 0; i < N; i++){
       vector<int> order;
       order.push_back(a[i]);
       res = max(res, getOrder(order, K-1, N, a, i));
    }

    cout << res;
}