#include<iostream>
#include<cstdio>
#include <cmath>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=100005;
int n,m,sum;
long long a[N],maxa;
int main(){
cin>>n>>m;
maxa=0,sum=0;
for(int i=1;i<=n;i++){
cin>>a[i];
maxa=max(a[i],maxa);
sum+=a[i];
}
LL l=maxa,r=sum,mid;
if(n==m){
cout<<maxa<<endl;
return 0;
}
int num;
while(l<r){
mid=(l+r)/2;
int s=0;
num=0;
for(int i=1;i<=n;i++){
s+=a[i];
if(s>mid&&i!=n){
s=0;
num++;
i--;
}else if(s>mid&&i==n){
num+=2;
}else if(s<=mid&&i==n){
num++;
}
}
if(num>m) l=mid+1;
else r=mid;
}
cout<<l<<endl;
system("pause");
return 0;
}