#include<iostream>
using namespace std;
long long a[100005], n, s, m, e;
long long f(int x) {
long long na = 1,c=0;
for (int i = 1; i <= n; i++) {
if(c+a[i]<=x)c+=a[i];
else c=a[i],na++;
}
return na;
}
long long efda() {
long long mid,l=0,r=s;
while(l<r){
mid=(l+r)>>1;
if(f(mid)<=m)r=mid;
else l=mid+1;
}
return (l+r)/2;
}
int main() {
cin>>n>>m;
s=0;
for (long long i = 1; i <= n; i++) {
cin>>a[i];
s+=a[i];
}
cout<< efda();
}