#include<bits/stdc++.h>
using namespace std;
long long a[1000005],n,r=0,A,l=0;
bool check(long long x){
long long cnt=1,sum=0;
for(long long i=1;i<=n;i++){
if(sum+a[i]<=x){
sum+=a[i];
continue;
}
cnt++;
sum=a[i];
}
return cnt<=A;
}
long long zhao(long long r){
long long mid=0;
while(l+1<r){
mid=(r+l)>>1;
if(check(mid)){
r=mid;
}else{
l=mid;
}
}
return l;
}
int main(){
cin>>n>>A;
for(int i=1;i<=n;i++){
cin>>a[i];
r+=a[i];
l=max(l,a[i]);
}
sort(a+1,a+n+1);
cout<<zhao(r);
return 0;
}