#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,pnum;
int num[N];
int dev(int s){
int cnt=0,sum=0;
for(int i=1;i<=n;i++){
if(sum+num[i]>s){
cnt++;
sum=num[i];
}else{
sum+=num[i];
}
}
return cnt+1;
}
int main(){
cin>>n>>pnum;
long long NumSum=0;
int MaxNum=-1;
for(int i=1;i<=n;i++){
cin>>num[i];
NumSum+=num[i];
MaxNum=max(MaxNum,num[i]);
}
long long l=MaxNum,r=NumSum,p;
while(l<=r){
long long mid=l+(r-l)/2;
int t=dev(mid);
if(t==pnum){
p=mid;
r=mid-1;
}else if(t>pnum){
l=mid+1;
}else{
r=mid-1;
}
}
cout<<p;
return 0;
}
60分代码求调