#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
int N,K;
int H[300];
long dp[333][333][333];
int main()
{
	cin>>N>>K;
	for(int i=0;i<N;i++)cin>>H[i];
	vector<int>h(H,H+N);
	h.push_back(0);
	sort(h.begin(),h.end());
	h.erase(unique(h.begin(),h.end()),h.end());
	map<int,int>M;
	for(int i=0;i<h.size();i++)M[h[i]]=i;
	for(int i=1;i<h.size();i++)for(int k=0;k<=K;k++)dp[0][i][k]=1e17;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<h.size();j++)for(int k=0;k<=K;k++)dp[i+1][j][k]=1e17;
		int id=M[H[i]];
		for(int j=0;j<h.size();j++)
		{
			for(int k=0;k<=K;k++)
			{
				if(dp[i][j][k]>=1e17)continue;
				dp[i+1][id][k]=min(dp[i+1][id][k],dp[i][j][k]+max(0,H[i]-h[j]));
				dp[i+1][j][k-1]=min(dp[i+1][j][k],dp[i][j][k]);
			}
		}
	}
	long ans=1e17;
	for(int j=0;j<h.size();j++)ans=min(ans,dp[N][j][0]);
	cout<<ans<<endl;
}
