#include<bits/stdc++.h>
using namespace std;
long long a[1000010],n,m,sum,tr,l;
long long minn;
bool etr(int yiban){
int ans=0,mt=1;
for(int i=1;i<=n;i++){
if(ans+a[i]<=yiban) ans+=a[i];
else{
ans=a[i];
mt++;
}
}
if(mt<=m){
return 1;
}else{
return 0;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
l=max(l,a[i]);
}
long long r=sum;
while(l<=r){
minn=(l+r)/2;
if(etr(minn)==1){
tr=minn;
r=minn-1;
}else{
l=minn+1;
}
}
cout<<tr;
}