#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n , k , sum , a[17000];
void caut_bin();
int verif(int x);
int main()
{
int i ;
f >> n >> k;
for(i = 1 ; i <= n ; ++i){
f >> a[i];
sum += a[i];
}
caut_bin();
return 0;
}
void caut_bin(){
int i = 0 , p = 0 ;
for(i = 1 ; i <= sum ; i*=2);
while(i){
if(verif(p + i) > k){
p += i ;
}
i /= 2;
}
g << p + 1;
}
int verif(int x){
int i , s = 0 , nr = 1;
for(i = 1 ; i <= n ; ++i){
if(s + a[i] <= x){
s += a[i] ;
}
else{
s = a[i];
++nr;
}
}
return nr;
}