#include<bits/stdc++.h>
using namespace std;
int n,m,minnn=0x7f7f7f7f;
int arr[100005];
long long sum=0;
long long check(long long x){
long long tmp=arr[0],jl=0;
for(int i=1;i<n;i++){
if(arr[i]+tmp>x){
jl++;
tmp=0;
}
tmp+=arr[i];
}
return jl+1;
}
long long ef(long long l,long long r){
while(l<r-1){
long long mi=(l+r)/2;
long long x=check(mi);
if(mi<minnn) return r;
if(x>m) l=mi;
else r=mi;
}
return r;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
sum+=arr[i];
minnn=min(minnn,arr[i]);
}
long long ans=ef(0,sum);
printf("%lld",ans);
return 0;
}