#include<iostream>
#include<string>
#include<utility>
#include<algorithm>

using namespace std;

int w[100000];

bool check(int n, int k, int p) {
	int i=0, tn=0, tw=0;
	for(i=0; i<n && tn<k; i++) {
		if(tw+w[i]>p) {
			tn++;
			tw=w[i];
		} else {
			tw+=w[i];
		}
	}
	return (tn<k);
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, k;
	int l=0, r=0;
	cin>>n>>k;

	for(int i=0; i<n; i++) {
		cin>>w[i];
		l=max(w[i], l);
		r+=w[i];
	}
	while(l<r) {
		int m=l+(r-l)/2;
		if(check(n, k, m)) r=m;
		else l=m+1;
	}
	cout<<r<<'\n';
	return 0;
}

