/*
@author longvuuuu
*/
#include <bits/stdc++.h>
#define taskname ""
#define ll long long
#define fi first
#define se second
#define pb push_back
using namespace std;
const ll NMAX = (ll)1e18;
const ll INF = LLONG_MIN;
vector<ll> a;
vector<vector<vector<ll>>> dp;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
if(fopen((string(taskname) + ".inp").c_str(), "r") != NULL) {
freopen((string(taskname) + ".inp").c_str(), "r", stdin);
freopen((string(taskname) + ".out").c_str(), "w", stdout);
}
int n, k;
cin >> n >> k;
a.assign(n + 3, 0);
for(int i = 1; i <= n; i++)
cin >> a[i];
dp.assign(n + 3, vector<vector<ll>>(n + 3, vector<ll>(k + 1, INF)));
for(int x = 1; x <= n + 1; x++)
for(int y = x - 1; y <= n; y++)
dp[x][y][0] = 0;
for(int i = 2; i <= n; i++)
for(int x = 1; x + i - 1 <= n; x++)
{
int y = x + i - 1;
for (int z = 1; z <= k && i >= 2 * z; z++)
{
if (dp[x + 2][y][z - 1] != INF)
dp[x][y][z] = max(dp[x][y][z], dp[x + 2][y][z - 1] + llabs(a[x] - a[x + 1]));
if (dp[x][y - 2][z - 1] != INF)
dp[x][y][z] = max(dp[x][y][z], dp[x][y - 2][z - 1] + llabs(a[y - 1] - a[y]));
if (dp[x + 1][y - 1][z - 1] != INF)
dp[x][y][z] = max(dp[x][y][z], dp[x + 1][y - 1][z - 1] + llabs(a[x] - a[y]));
dp[x][y][z] = max(dp[x][y][z], dp[x + 1][y][z]);
dp[x][y][z] = max(dp[x][y][z], dp[x][y - 1][z]);
}
}
ll res = dp[1][n][k];
if (res <= INF / 2) cout << -1 << '\n';
else cout << res << '\n';
}
LyoKICAgIEBhdXRob3IgbG9uZ3Z1dXV1CiovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIHRhc2tuYW1lICIiCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbGwgTk1BWCA9IChsbCkxZTE4Owpjb25zdCBsbCBJTkYgPSBMTE9OR19NSU47CnZlY3RvcjxsbD4gYTsKdmVjdG9yPHZlY3Rvcjx2ZWN0b3I8bGw+Pj4gZHA7CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBpZihmb3Blbigoc3RyaW5nKHRhc2tuYW1lKSArICIuaW5wIikuY19zdHIoKSwgInIiKSAhPSBOVUxMKSB7CiAgICAgICAgZnJlb3Blbigoc3RyaW5nKHRhc2tuYW1lKSArICIuaW5wIikuY19zdHIoKSwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigoc3RyaW5nKHRhc2tuYW1lKSArICIub3V0IikuY19zdHIoKSwgInciLCBzdGRvdXQpOwogICAgfQogICAgCiAgICBpbnQgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBhLmFzc2lnbihuICsgMywgMCk7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIGRwLmFzc2lnbihuICsgMywgdmVjdG9yPHZlY3RvcjxsbD4+KG4gKyAzLCB2ZWN0b3I8bGw+KGsgKyAxLCBJTkYpKSk7CiAgICBmb3IoaW50IHggPSAxOyB4IDw9IG4gKyAxOyB4KyspCiAgICAgICAgZm9yKGludCB5ID0geCAtIDE7IHkgPD0gbjsgeSsrKQogICAgICAgICAgICBkcFt4XVt5XVswXSA9IDA7CiAgICBmb3IoaW50IGkgPSAyOyBpIDw9IG47IGkrKykKICAgICAgICBmb3IoaW50IHggPSAxOyB4ICsgaSAtIDEgPD0gbjsgeCsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHkgPSB4ICsgaSAtIDE7CiAgICAgICAgICAgIGZvciAoaW50IHogPSAxOyB6IDw9IGsgJiYgaSA+PSAyICogejsgeisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoZHBbeCArIDJdW3ldW3ogLSAxXSAhPSBJTkYpCiAgICAgICAgICAgICAgICAgICAgZHBbeF1beV1bel0gPSBtYXgoZHBbeF1beV1bel0sIGRwW3ggKyAyXVt5XVt6IC0gMV0gKyBsbGFicyhhW3hdIC0gYVt4ICsgMV0pKTsKICAgICAgICAgICAgICAgIGlmIChkcFt4XVt5IC0gMl1beiAtIDFdICE9IElORikKICAgICAgICAgICAgICAgICAgICBkcFt4XVt5XVt6XSA9IG1heChkcFt4XVt5XVt6XSwgZHBbeF1beSAtIDJdW3ogLSAxXSArIGxsYWJzKGFbeSAtIDFdIC0gYVt5XSkpOwogICAgICAgICAgICAgICAgaWYgKGRwW3ggKyAxXVt5IC0gMV1beiAtIDFdICE9IElORikKICAgICAgICAgICAgICAgICAgICBkcFt4XVt5XVt6XSA9IG1heChkcFt4XVt5XVt6XSwgZHBbeCArIDFdW3kgLSAxXVt6IC0gMV0gKyBsbGFicyhhW3hdIC0gYVt5XSkpOwogICAgICAgICAgICAgICAgZHBbeF1beV1bel0gPSBtYXgoZHBbeF1beV1bel0sIGRwW3ggKyAxXVt5XVt6XSk7CiAgICAgICAgICAgICAgICBkcFt4XVt5XVt6XSA9IG1heChkcFt4XVt5XVt6XSwgZHBbeF1beSAtIDFdW3pdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICBsbCByZXMgPSBkcFsxXVtuXVtrXTsKICAgIGlmIChyZXMgPD0gSU5GIC8gMikgY291dCA8PCAtMSA8PCAnXG4nOwogICAgZWxzZSBjb3V0IDw8IHJlcyA8PCAnXG4nOwp9Cg==