#include <bits/stdc++.h>
#define NMAX 305
using namespace std;
int n , k;
int cards[NMAX];
long long dp[NMAX][NMAX][NMAX / 2];
long long ans;
void maximize(long long &before , long long later)
{
if(before < later) before = later;
}
namespace sub1{
int MaxLater[NMAX] , MinLater[NMAX] , two[NMAX];
void codesub1()
{
if(k == 1)
{
for(int i = 1 ; i <= n ; i++)
for(int j = i + 1 ; j <= n ; j++) maximize(ans , abs(cards[i] - cards[j]) );
}
if(k == 2)
{
MaxLater[n] = MinLater[n] = cards[n];
for(int i = n - 1 ; i >= 1 ; i--)
{
MaxLater[i] = max(MaxLater[i + 1] , cards[i]);
MinLater[i] = min(MinLater[i + 1] , cards[i]);
}
for(int i = 2 ; i <= n ; i++) two[i] = abs(cards[i-1] - cards[i]);
for(int i = 1 ; i <= n ; i++) for(int j = i + 1 ; j <= n ; j++)
for(int k = j + 1 ; k < n ; k++)
{
maximize(ans , abs(cards[i] - MaxLater[k + 1]) + abs(cards[j] - cards[k]) );
maximize(ans , abs(cards[i] - MinLater[k + 1]) + abs(cards[j] - cards[k]) );
}
for(int i = 2 ; i <= n ; i++)
for(int j = i + 2 ; j <= n ; j++) maximize(ans , two[i] + two[j]);
}
cout<<ans;
}
}
namespace sub2{
void backtrack(int LEFT , int RIGHT , int cnt , long long sum)
{
if(cnt == k)
{
maximize(ans , sum );
return ;
}
backtrack(LEFT + 1 , RIGHT - 1 , cnt + 1 , sum + abs(cards[LEFT] - cards[RIGHT]));
backtrack(LEFT + 2 , RIGHT , cnt + 1 , sum + abs(cards[LEFT] - cards[LEFT + 1]));
backtrack(LEFT , RIGHT - 2 , cnt + 1 , sum + abs(cards[RIGHT] - cards[RIGHT - 1] ) );
}
void codesub2()
{
backtrack(1 , n , 0 , 0);
cout<<ans;
}
}
namespace sub3{
void codesub3()
{
for(int i = 1 ; i <= n - 1 ; i++) dp[i][i+1][1] = abs(cards[i] - cards[i+1]);
for(int cnt = 1 ; cnt <= k ; cnt++)
{
for(int length = 3 ; length <= n ; length++)
{
for(int LEFT = 1 ; LEFT <= n - length + 1 ; LEFT++)
{
int RIGHT = LEFT + length - 1;
maximize(dp[LEFT][RIGHT][cnt] , dp[LEFT][RIGHT - 1][cnt]);
maximize(dp[LEFT][RIGHT][cnt] , dp[LEFT + 1][RIGHT][cnt]);
maximize(dp[LEFT][RIGHT][cnt] , dp[LEFT][RIGHT - 2][cnt - 1] + abs(cards[RIGHT] - cards[RIGHT - 1]));
maximize(dp[LEFT][RIGHT][cnt] , dp[LEFT + 2][RIGHT][cnt - 1] + abs(cards[LEFT] - cards[LEFT + 1]));
maximize(dp[LEFT][RIGHT][cnt] , dp[LEFT + 1][RIGHT - 1][cnt - 1] + abs(cards[LEFT] - cards[RIGHT]));
}
}
}
cout<<dp[1][n][k];
}
}
void process()
{
cin>> n >> k ;
for(int i = 1 ; i<= n ; i++) cin>>cards[i];
if(n <= 300 && k <= 2)
{
sub1::codesub1();
return;
}
if(n <= 30 && 2 * k == n)
{
sub2::codesub2();
return;
}
sub3::codesub3();
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
process();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgTk1BWCAzMDUKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG4gLCBrOwppbnQgY2FyZHNbTk1BWF07CmxvbmcgbG9uZyBkcFtOTUFYXVtOTUFYXVtOTUFYIC8gMl07CmxvbmcgbG9uZyBhbnM7CgoKdm9pZCBtYXhpbWl6ZShsb25nIGxvbmcgJmJlZm9yZSAsIGxvbmcgbG9uZyBsYXRlcikKewogICAgICAgIGlmKGJlZm9yZSA8IGxhdGVyKSAgYmVmb3JlID0gbGF0ZXI7Cn0KCgpuYW1lc3BhY2Ugc3ViMXsKCiAgICAgIGludCBNYXhMYXRlcltOTUFYXSAsIE1pbkxhdGVyW05NQVhdICwgdHdvW05NQVhdOwoKICAgICAgdm9pZCBjb2Rlc3ViMSgpCiAgICAgIHsKICAgICAgICBpZihrID09IDEpCiAgICAgICAgewogICAgICAgICAgICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspIAogICAgICAgICAgICAgIGZvcihpbnQgaiA9IGkgKyAxIDsgaiA8PSBuIDsgaisrKSAgbWF4aW1pemUoYW5zICwgYWJzKGNhcmRzW2ldIC0gY2FyZHNbal0pICk7CiAgICAgICAgfQoKICAgICAgICBpZihrID09IDIpCiAgICAgICAgewogICAgICAgICAgICAgICAgIE1heExhdGVyW25dID0gTWluTGF0ZXJbbl0gPSBjYXJkc1tuXTsKCiAgICAgICAgICAgICAgICAgZm9yKGludCBpID0gbiAtIDEgOyBpID49IDEgOyBpLS0pCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgTWF4TGF0ZXJbaV0gPSBtYXgoTWF4TGF0ZXJbaSArIDFdICAsIGNhcmRzW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgIE1pbkxhdGVyW2ldICA9IG1pbihNaW5MYXRlcltpICsgMV0gLCBjYXJkc1tpXSk7CiAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSAyIDsgaSA8PSBuIDsgaSsrKSAgdHdvW2ldID0gYWJzKGNhcmRzW2ktMV0gLSBjYXJkc1tpXSk7CgogICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspICBmb3IoaW50IGogPSAgaSArIDEgOyBqIDw9IG4gOyBqKyspCiAgICAgICAgICAgICAgICAgZm9yKGludCBrID0gaiArIDEgOyBrIDwgbiA7IGsrKykKICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltaXplKGFucyAsIGFicyhjYXJkc1tpXSAtIE1heExhdGVyW2sgKyAxXSkgKyBhYnMoY2FyZHNbal0gLSBjYXJkc1trXSkgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltaXplKGFucyAsIGFicyhjYXJkc1tpXSAtIE1pbkxhdGVyW2sgKyAxXSkgKyBhYnMoY2FyZHNbal0gLSBjYXJkc1trXSkgKTsKICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDIgOyBpIDw9IG4gOyBpKyspICAKICAgICAgICAgICAgICAgICBmb3IoaW50IGogPSBpICsgMiA7IGogPD0gbiA7IGorKykgIG1heGltaXplKGFucyAsIHR3b1tpXSArIHR3b1tqXSk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgY291dDw8YW5zOwogICAgICAgfQp9CgoKCm5hbWVzcGFjZSBzdWIyewoKICAgdm9pZCBiYWNrdHJhY2soaW50IExFRlQgLCBpbnQgUklHSFQgLCBpbnQgY250ICwgbG9uZyBsb25nIHN1bSkKICAgewogICAgICAgIGlmKGNudCA9PSBrKQogICAgICAgIHsKICAgICAgICAgICAgICAgIG1heGltaXplKGFucyAsIHN1bSApOwogICAgICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICB9CgogICAgICAgIGJhY2t0cmFjayhMRUZUICsgMSAsIFJJR0hUIC0gMSAsIGNudCArIDEgLCBzdW0gKyBhYnMoY2FyZHNbTEVGVF0gLSBjYXJkc1tSSUdIVF0pKTsKCiAgICAgICAgYmFja3RyYWNrKExFRlQgKyAyICwgUklHSFQgLCBjbnQgKyAxICwgc3VtICsgYWJzKGNhcmRzW0xFRlRdIC0gY2FyZHNbTEVGVCArIDFdKSk7CgogICAgICAgIGJhY2t0cmFjayhMRUZUICwgUklHSFQgLSAyICwgY250ICsgMSAsIHN1bSArIGFicyhjYXJkc1tSSUdIVF0gLSBjYXJkc1tSSUdIVCAtIDFdICkgKTsKICAgfQoKICB2b2lkIGNvZGVzdWIyKCkKICB7CiAgICAgICAgYmFja3RyYWNrKDEgLCBuICwgMCAsIDApOwoKICAgICAgICBjb3V0PDxhbnM7CiAgfQoKfQoKbmFtZXNwYWNlIHN1YjN7CgogICAgICAgICAgdm9pZCBjb2Rlc3ViMygpCiAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZm9yKGludCBpID0gMSA7IGkgIDw9IG4gLSAxIDsgaSsrKSAgZHBbaV1baSsxXVsxXSA9IGFicyhjYXJkc1tpXSAtIGNhcmRzW2krMV0pOwoKICAgICAgICAgICAgICAgICBmb3IoaW50IGNudCA9IDEgOyBjbnQgPD0gayA7IGNudCsrKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgbGVuZ3RoID0gMyA7IGxlbmd0aCA8PSBuIDsgbGVuZ3RoKyspCiAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgTEVGVCA9IDEgOyBMRUZUIDw9IG4gLSBsZW5ndGggKyAxIDsgTEVGVCsrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgIGludCBSSUdIVCA9IExFRlQgKyBsZW5ndGggLSAxOwoKICAgICBtYXhpbWl6ZShkcFtMRUZUXVtSSUdIVF1bY250XSAsIGRwW0xFRlRdW1JJR0hUIC0gMV1bY250XSk7CgogICAgIG1heGltaXplKGRwW0xFRlRdW1JJR0hUXVtjbnRdICwgZHBbTEVGVCArIDFdW1JJR0hUXVtjbnRdKTsKCiAgICAgbWF4aW1pemUoZHBbTEVGVF1bUklHSFRdW2NudF0gLCBkcFtMRUZUXVtSSUdIVCAtIDJdW2NudCAtIDFdICsgYWJzKGNhcmRzW1JJR0hUXSAtIGNhcmRzW1JJR0hUIC0gMV0pKTsKCiAgICAgbWF4aW1pemUoZHBbTEVGVF1bUklHSFRdW2NudF0gLCBkcFtMRUZUICsgMl1bUklHSFRdW2NudCAtIDFdICsgYWJzKGNhcmRzW0xFRlRdIC0gY2FyZHNbTEVGVCArIDFdKSk7CgogICAgIG1heGltaXplKGRwW0xFRlRdW1JJR0hUXVtjbnRdICwgZHBbTEVGVCArIDFdW1JJR0hUIC0gMV1bY250IC0gMV0gKyBhYnMoY2FyZHNbTEVGVF0gLSBjYXJkc1tSSUdIVF0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjb3V0PDxkcFsxXVtuXVtrXTsKICAgICAgICAgIH0KCn0KCnZvaWQgcHJvY2VzcygpCnsKICAgIGNpbj4+IG4gPj4gayA7CiAgICBmb3IoaW50IGkgPSAxIDsgIGk8PSBuIDsgaSsrKSAgY2luPj5jYXJkc1tpXTsKCiAgICBpZihuIDw9IDMwMCAmJiBrIDw9IDIpCiAgICB7IAogICAgICAgIHN1YjE6OmNvZGVzdWIxKCk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuOwogICAgfQogICAgCiAgICBpZihuIDw9IDMwICYmIDIgKiBrID09IG4pCiAgICB7IAogICAgICAgIHN1YjI6OmNvZGVzdWIyKCk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuOwogICAgfQogICAgCiAgICBzdWIzOjpjb2Rlc3ViMygpOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKICAgIHByb2Nlc3MoKTsKICAgIHJldHVybiAwOwp9Cg==