#include <bits/stdc++.h>
using namespace std;
vector<int> snake, bigthenfirst;
int cache[401][401][401]; //현재 그물망 사이즈는 i번째 index, 지금 보고 있는 index, 남은 변경 가능 수
const int INF = 98765432;
int space(int i, int here, int remain)
{
cout<<i<<here<<remain<<'\n';
if(here >= snake.size()) return 0; //index out of range
if(remain == 0 && snake[i] < snake[here]) return INF; //불가능한 노드 처리
int& ret = cache[i][here][remain];
if(ret != -1) return ret;
ret = INF;
if(snake[i] >= snake[here])
ret = min(ret, space(i,here+1,remain) + snake[i] - snake[here]);
if(remain > 0)
{
for(int j=0;j<snake.size();++j)
{
if(snake[j] >= snake[here])
{
ret = min(ret, space(j,here+1,remain-1) + snake[j] - snake[here]);
}
}
}
return ret;
}
int main()
{
cin.tie(0);
ios::sync_with_stdio(0);
int n, k;
cin>>n>>k;
snake.assign(n,0);
for(int i=0;i<n;++i)
{
cin>>snake[i];
if(snake[i] > snake[0])
bigthenfirst.push_back(i);
}
memset(cache,-1,sizeof(cache));
for(auto i : snake) cout<<i<<'\n';
int ret = space(0,0,k);
for(auto i : bigthenfirst)
{
ret = min(ret, space(i,0,k));
}
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
for(int k=0;k<n;++k)
{
cout<<i<<j<<k<<':'<<cache[i][j][k]<<'\n';
}
}
}
cout<<ret;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGludD4gc25ha2UsIGJpZ3RoZW5maXJzdDsKaW50IGNhY2hlWzQwMV1bNDAxXVs0MDFdOyAvL+2YhOyerCDqt7jrrLzrp50g7IKs7J207KaI64qUIGnrsojsp7ggaW5kZXgsIOyngOq4iCDrs7Tqs6Ag7J6I64qUIGluZGV4LCDrgqjsnYAg67OA6rK9IOqwgOuKpSDsiJgKY29uc3QgaW50IElORiA9IDk4NzY1NDMyOwoKaW50IHNwYWNlKGludCBpLCBpbnQgaGVyZSwgaW50IHJlbWFpbikKewoJY291dDw8aTw8aGVyZTw8cmVtYWluPDwnXG4nOwoJaWYoaGVyZSA+PSBzbmFrZS5zaXplKCkpIHJldHVybiAwOyAvL2luZGV4IG91dCBvZiByYW5nZQoJaWYocmVtYWluID09IDAgJiYgc25ha2VbaV0gPCBzbmFrZVtoZXJlXSkgcmV0dXJuIElORjsgLy/rtojqsIDriqXtlZwg64W465OcIOyymOumrAoJCglpbnQmIHJldCA9IGNhY2hlW2ldW2hlcmVdW3JlbWFpbl07CglpZihyZXQgIT0gLTEpIHJldHVybiByZXQ7CgkKCXJldCA9IElORjsKCWlmKHNuYWtlW2ldID49IHNuYWtlW2hlcmVdKQoJCXJldCA9IG1pbihyZXQsIHNwYWNlKGksaGVyZSsxLHJlbWFpbikgKyBzbmFrZVtpXSAtIHNuYWtlW2hlcmVdKTsKCWlmKHJlbWFpbiA+IDApCgl7CgkJZm9yKGludCBqPTA7ajxzbmFrZS5zaXplKCk7KytqKQoJCXsKCQkJaWYoc25ha2Vbal0gPj0gc25ha2VbaGVyZV0pCgkJCXsKCQkJCXJldCA9IG1pbihyZXQsIHNwYWNlKGosaGVyZSsxLHJlbWFpbi0xKSArIHNuYWtlW2pdIC0gc25ha2VbaGVyZV0pOwoJCQl9CgkJfQoJfQoJcmV0dXJuIHJldDsKfQppbnQgbWFpbigpCnsKCWNpbi50aWUoMCk7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWludCBuLCBrOwoJY2luPj5uPj5rOwoJc25ha2UuYXNzaWduKG4sMCk7Cglmb3IoaW50IGk9MDtpPG47KytpKQoJewoJCWNpbj4+c25ha2VbaV07CgkJaWYoc25ha2VbaV0gPiBzbmFrZVswXSkKCQkJYmlndGhlbmZpcnN0LnB1c2hfYmFjayhpKTsKCX0KCW1lbXNldChjYWNoZSwtMSxzaXplb2YoY2FjaGUpKTsKCWZvcihhdXRvIGkgOiBzbmFrZSkgY291dDw8aTw8J1xuJzsKCQoJaW50IHJldCA9IHNwYWNlKDAsMCxrKTsKCWZvcihhdXRvIGkgOiBiaWd0aGVuZmlyc3QpCgl7CgkJcmV0ID0gbWluKHJldCwgc3BhY2UoaSwwLGspKTsKCX0KCWZvcihpbnQgaT0wO2k8bjsrK2kpCgl7CgkJZm9yKGludCBqPTA7ajxuOysraikKCQl7CgkJCWZvcihpbnQgaz0wO2s8bjsrK2spCgkJCXsKCQkJCWNvdXQ8PGk8PGo8PGs8PCc6Jzw8Y2FjaGVbaV1bal1ba108PCdcbic7CgkJCX0KCQl9Cgl9Cgljb3V0PDxyZXQ7Cn0=