#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1e5+10;
int a[MAXN],s[MAXN];
int N,M;
bool check(int x){
int tot=1;
int l=0;
int r=1;
while(r<=N){
while(s[r]-s[l]<=x) r++;
tot++;
l=r;
if(tot>M) return false;
}
return true;
}
int main(){
scanf("%d%d",&N,&M);
for(int i=1;i<=N;i++){
scanf("%d",&a[i]);
s[i]=s[i-1]+a[i];
}
int mid,l=0,r=1e9;
while(l<r){
mid=l+r>>1;
if(check(mid)) r=mid;
else l=mid+1;
}
cout<<l<<endl;
return 0;
}