#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;
    }
    
}