#include<bits/stdc++.h>
using namespace std;
int n,m,a[100000005];
bool p(int x){
int tot=0;
int now=0;
for(int i=1;i<=n;i++){
if(now+a[i]<=x)
now+=a[i];
else{
tot++;
now=a[i];
}
}
return tot<=m;
}
int s(int l,int r){
int mid,ans=0;
while(l<=r){
mid=(l+r)/2;
if(p(mid)){
r=mid-1;
ans=mid;
}
else l=mid+1;
}
return l;
}
int main(){
int l=0,r=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
cout<<s(l,r)<<endl;
return 0;
}