#include <bits/stdc++.h>
using namespace std;

int main() 
{
	int n;
	cin >> n;
	vector<int> costs(n);
	for(int &x : costs)
		cin >> x;
	int weeks;
	cin >> weeks;
	
	vector<vector<int>> dp(n+1,vector<int>(weeks + 1, 1e9));
	//dp[i][w] - min cost to partition first i costs in w weeks 
	
	dp[0][0] = 0; //base case
	
	for(int w = 1 ; w <= weeks ; w++)
	{
		for(int i = w ; i <= n ; i++)
		{
			int mx = 0; //cost for thsi partition
			for(int j = i - 1 ; j >= w - 1 ; j--)
			{
				mx = max(mx,costs[j]);
				
				dp[i][w] = min(dp[i][w],
								dp[j][w-1] + mx);
			}
		}
	}
	cout << dp[n][weeks] << "\n";
	
	return 0;
}