#include<bits/stdc++.h>
using namespace std;
const int maxn=1e+9+5;
int a[10005];
int ans;
int n,m;
int work(int maxx){
int cnt=1;
int len=0;
for(int i=1;i<=n;i++){
if(len+a[i]<maxx){
len+=a[i];
}
else if(len+a[i]==maxx){
len=0;
cnt++;
}
else if(len+a[i]>maxx){
len=a[i];
cnt++;
}
}
return cnt;
}
int mainwork(){
int left=1,right=maxn;
while(left<right){
int mid=(left+right)/2;
if(work(mid)<m)
right=mid;
else
left=mid+1;
}
return left-1;
}
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
ans=mainwork();
printf("%d\n",ans);
return 0;
}