#include <bits/stdc++.h>
using namespace std;
int n,m,a[100005],L=0,R=0x3c3c3c3c,t;
bool check(int x){
int num=1,sum=0;
for(int i=0;i<n-1;i++){
sum+=a[i];
if(sum+a[i+1]>x){
sum=0;
num++;
}
}
if(num>m) return true;
else return false;
}
void erfen(){
while(L<=R){
int mid=(L+R)/2;
if(check(mid)){
L=mid+1;
}else{
R=mid-1;
}
}
cout<<L;
}
int main() {
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
L=max(L,a[i]);
}
erfen();
return 0;
}