#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100100;
int n,m,a[N],l,r,mid,num,sum,ans=99999999;
int read();
void pre(){
for(int i=2;i<=n;++i){
a[i]+=a[i-1];
}
return;
}
int main(){
n=read();
m=read();
for(int i=1;i<=n;++i){
a[i]=read();
}
// pre();
l=0;
r=9999999;
while(l<=r){
num=0;
mid=(l+r)>>1;
sum=0;
for(int i=1;i<=n;++i){
if(a[i]>mid){
num=110000;
break;
}
if(a[i]+sum>mid){
++num;
sum=a[i];
}
else{
sum+=a[i];
}
}
if(sum!=0)++num;
if(num<=m){
ans=min(ans,mid);
r=mid-1;
}
else{
l=mid+1;
}
}
printf("%d",ans);
return 0;
}
int read(){
int h=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
h=h*10+ch-'0';
ch=getchar();
}
return h;
}