#include<iostream>
#include<cstring>
using namespace std;
long long N,K;
int ls[100001];
bool func(long long m)
{
long long cnt=0,s=m;
for(int i=1;i<N;i++)
{
if(ls[i]>m)
return false;
if(s-ls[i]<0)
{
s=m;
cnt++;
}
s-=ls[i];
}
if(s!=m)
cnt++;
if(cnt>K)
return false;
else
return true;
}
int main()
{
while(~scanf("%d %d",&N,&K))
{
for(int i=1;i<N;i++)
scanf("%d",&ls[i]);
long long l=0,r=1e12;
while(l<r)
{
long long mid=l+r>>1;
if(func(mid))
r=mid;
else
l=mid+1;
}
if(func(l-1))
cout<<l-1<<endl;
else if(func(l))
cout<<l<<endl;
else
cout<<l+1<<endl;
}
}