#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100001],maxx=LONG_LONG_MIN,num;
bool check(long long maxn,long long m){
m--;
long long sum=0;
for(int i=1;i<=n;i++){
if(sum+a[i]<=maxn){
sum+=a[i];
}else{
sum=a[i];
m--;
}
}
return m>=0;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
maxx=max(maxx,a[i]);
num+=a[i];
}
long long l=maxx,r=num;
while(l<=r){
long long mid=(l+r)/2;
if(check(mid,m)){
r=mid-1;
}else{
l=mid+1;
}
}
cout<<l;
return 0;
}