#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
#define NrMax 1e9
int n, k, x, sumc, A[16005], sol, st, dr, m, Max;
bool solutie(int vol)
{
int sumc, drum;
sumc = drum = 0;
for(int i = 1; i <= n; i ++)
{
if(sumc + A[i] <= vol)
{
sumc += A[i];
}
else
{
drum ++;
sumc = A[i];
}
}
if(sumc > 0)drum ++;
if(drum <= k)return true;
return false;
}
int main()
{
in >> n >> k;
for(int i = 1; i <= n; i ++)
{
in >> A[i];
Max = max(A[i], Max);
}
st = Max; dr = NrMax;
while(st <= dr)
{
m = (st + dr) / 2;
if(solutie(m))
{
dr = m - 1;
sol = m;
}
else st = m + 1;
}
out << sol;
return 0;
}