#include <iostream>
#define INF 1000000000
using namespace std;

int n, m, dist[100] = {1,5,2,6,8,3,2}, dp[1000][1000];

int solve(int index, int count){
	if(index == n){
		if(count == m) return 0;
		else return INF;
	}
	if(dp[index][count] != -1) return dp[index][count];
	int sum = 0, ans = INF;
	for(int i = index;i < n;i++){
		sum += dist[i];
		int val = max(sum, solve(i+1, count+1));
		ans = min(ans, val);
	}
	return dp[index][count] = ans;
}

int main() {
	// your code goes here
	n = 7, m = 3;
	for(int i = 0;i < 1000;i++) for(int j = 0;j < 1000;j++) dp[i][j] = -1;
	cout << solve(0, 0) << endl;
	return 0;
}
