#include<iostream>
#define ll long long
using namespace std;
ll a[1000005];
ll n,m;
ll l,r;
bool check(int x){
ll ans=0,cnt=1;
for(int i=1;i<=n;i++){
if(a[i]+ans>x){
cnt++;
ans=0;
}
ans+=a[i];
}
if(cnt>m)return false;
else return true;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
ll ans=0;
while(l<=r){
int mid=l+(r-l)/2;
if(check(mid)){
ans=mid;
r=mid-1;
}
else {
l=mid+1;
}
}
cout<<ans;
}