#include<bits/stdc++.h>
using namespace std;
int n,m;
long long a[100010],sum,maxx;
int f(int x){
int cnt=1;
long long s=0;
for(int i=1;i<=n;i++){
if(s+a[i]<=x) s+=a[i];
else{
cnt++;
s=a[i];
}
}
return cnt;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
maxx=max(maxx,a[i]);
sum+=a[i];
}
long long l=maxx,r=sum;
while(l<r){
long long mid=(l+r)/2;
if(f(mid)>m) l=mid+1;
else r=mid;
}
printf("%lld",l);
return 0;
}