#include <bits/stdc++.h>
using namespace std;
ifstream fin( "transport.in" );
ofstream fout( "transport.out" );
int n, v[16005];
int transporturi( int cap ){
int r, s, i;
s = cap;
r = 1;
for( i = 0; i < n; i++ ){s -= v[i];
if( s < 0 ){s = cap - v[i];
r++;
}
}
return r;
}
int k, i,st, dr, mij;
int main(){
fin >> n >> k;
st = 0;
for( i = 0; i < n; i++ ){fin >> v[i];
if( v[i] > st ){st = v[i];
}
}
st--;
dr = 256000000;
while( dr - st > 1 ){
mijloc = ( st + dr ) / 2;
if( transporturi( mij ) > k ){
st = mij;
}
else{dr = mij;}
}
fout << dr;
return 0;
}