#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in") ;
ofstream out("transport.out") ;
const int NM = 16000 ;
int v[NM], n, k ;
bool incap( int c )
{
int nrt = 0, cc = 0 ;
for( int i = 0 ; i < n ; i++ )
{
if( v[i] > c )
{
return false ;
}
if( v[i] > cc )
{
nrt++ ;
cc = c ;
}
cc -= v[i] ;
}
return( nrt <= k ) ;
}
int main()
{
in >> n >> k ;
for( int i = 1 ; i <= n ; i++ )
{
cin >> v[i] ;
}
int r = 0, pas = 1 << 27 ;
while( pas != 0 )
{
if( !incap ( r + pas ) )
{
r += pas ;
}
pas /= 2 ;
}
out << r + 1 ;
return 0;
}