#include<bits/stdc++.h>
using namespace std;
long long m,n;
long long t[100008];
long long z[100008];
bool check(int x){
long long ans=0,jj=0;
for(int i=1;i<=n;i++){
if(t[i]>x)return false;
if(i==n&&z[n]-jj<x){
ans++;
break;
}
if(z[i]-jj>x){
jj=z[i-1];
ans++;
}
else if(z[i]-jj==x){
ans++;
jj=z[i];
}
if(ans>m)return false;
}
return ans<=m;
}
int main(){
scanf("%lld%lld",&n,&m);
long long ff=-999999;
for(int i=1;i<=n;i++){
scanf("%lld",&t[i]);
z[i]=z[i-1]+t[i];
ff=max(ff,z[i]);
}
long long l=0,r=ff+1;
while(l<r){
long long mid=(l+r)/2;
if(check(mid))r=mid;
else l=mid+1;
}
printf("%lld",l);
}