#include <bits/stdc++.h>
#define int long long
#define fast ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
#define lg2(n) (63-__builtin_clzll(n))
#define mask(n) (1LL << (n))
#define TASK ""
#define openfile(); if( fopen(TASK".inp", "r")){freopen(TASK".inp", "r", stdin);freopen(TASK".out", "w", stdout);}
#define lc(n) (n << 1)
#define rc(n) ((n << 1) | 1)
#define fi first
#define se second
#define FOR(i, l, r, k) for( int i = l; i <= r; i += k)
#define FOD(i, r, l, k) for( int i = r; i >= l; i -= k)
#define mii map<int,int>
#define umi unordered_map<int, int>
#define pii pair<int,int>
#define vi vector<int>
using namespace std;
const int oo = 1e18;
const int mod = 14062008;
const int nmax = 300 + 8;
const int base = 311;
int n, a[nmax], k, dp[151][nmax][nmax];
int sol(int l, int i, int j){
if(l > k){
return 0;
}
if(i >= j) return -oo;
if(!dp[l][i][j]) return dp[l][i][j];
int res = -oo;
res = max(res, sol(l + 1, i + 2, j) + abs(a[i] - a[i + 1]));
res = max(res, sol(l + 1, i + 1, j - 1) + abs(a[i] - a[j]));
res = max(res, sol(l + 1, i + 1, j - 2) + abs(a[i] - a[j]));
res = max(res, sol(l, i + 1, j));
res = max(res, sol(l, i, j - 1));
return dp[l][i][j] = res;
}
main(){
fast;
openfile();
cin >> n >> k;
for(int i = 1; i <= n; ++i) cin >> a[i];
memset(dp, -1, sizeof dp);
cout << sol(1, 1, n);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUobnVsbHB0cik7IGNvdXQudGllKG51bGxwdHIpOwojZGVmaW5lIGxnMihuKSAoNjMtX19idWlsdGluX2NsemxsKG4pKQojZGVmaW5lIG1hc2sobikgKDFMTCA8PCAobikpCiNkZWZpbmUgVEFTSyAiIgojZGVmaW5lIG9wZW5maWxlKCk7ICBpZiggZm9wZW4oVEFTSyIuaW5wIiwgInIiKSl7ZnJlb3BlbihUQVNLIi5pbnAiLCAiciIsIHN0ZGluKTtmcmVvcGVuKFRBU0siLm91dCIsICJ3Iiwgc3Rkb3V0KTt9CiNkZWZpbmUgbGMobikgKG4gPDwgMSkKI2RlZmluZSByYyhuKSAoKG4gPDwgMSkgfCAxKQoKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIEZPUihpLCBsLCByLCBrKSBmb3IoIGludCBpID0gbDsgaSA8PSByOyBpICs9IGspCiNkZWZpbmUgRk9EKGksIHIsIGwsIGspIGZvciggaW50IGkgPSByOyBpID49IGw7IGkgLT0gaykKCiNkZWZpbmUgbWlpIG1hcDxpbnQsaW50PgojZGVmaW5lIHVtaSB1bm9yZGVyZWRfbWFwPGludCwgaW50PgojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgb28gPSAxZTE4Owpjb25zdCBpbnQgbW9kID0gMTQwNjIwMDg7CmNvbnN0IGludCBubWF4ID0gMzAwICsgODsKY29uc3QgaW50IGJhc2UgPSAzMTE7CgppbnQgbiwgYVtubWF4XSwgaywgZHBbMTUxXVtubWF4XVtubWF4XTsKCmludCBzb2woaW50IGwsIGludCBpLCBpbnQgail7CiAgICBpZihsID4gayl7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBpZihpID49IGopIHJldHVybiAtb287CiAgICBpZighZHBbbF1baV1bal0pIHJldHVybiBkcFtsXVtpXVtqXTsKICAgIGludCByZXMgPSAtb287CiAgICByZXMgPSBtYXgocmVzLCBzb2wobCArIDEsIGkgKyAyLCBqKSArIGFicyhhW2ldIC0gYVtpICsgMV0pKTsKICAgIHJlcyA9IG1heChyZXMsIHNvbChsICsgMSwgaSArIDEsIGogLSAxKSArIGFicyhhW2ldIC0gYVtqXSkpOwogICAgcmVzID0gbWF4KHJlcywgc29sKGwgKyAxLCBpICsgMSwgaiAtIDIpICsgYWJzKGFbaV0gLSBhW2pdKSk7CiAgICByZXMgPSBtYXgocmVzLCBzb2wobCwgaSArIDEsIGopKTsKICAgIHJlcyA9IG1heChyZXMsIHNvbChsLCBpLCBqIC0gMSkpOwogICAgcmV0dXJuIGRwW2xdW2ldW2pdID0gcmVzOwp9CgptYWluKCl7CiAgICBmYXN0OwogICAgb3BlbmZpbGUoKTsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IGFbaV07CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgY291dCA8PCBzb2woMSwgMSwgbik7Cn0K