#include <bits/stdc++.h>
using namespace std;
const int MAX = 16005;
int N, K, v[MAX], l, r;
int days(int volum) {
int d = 1, s = 0;
for(int i = 1; i <= N; ++i) {
if(s + v[i] <= volum) s += v[i];
else {
d++;
s = v[i];
}
}
return d;
}
int main() {
ifstream fin("transport.in");
ofstream fout("transport.out");
fin >> N >> K;
for(int i = 1; i <= N; ++i)
fin >> v[i], l = max(l, v[i]), r += v[i];
int ans;
while(l <= r) {
int volum = (l + r) >> 1;
(days(volum) > K) ? l = volum + 1 : r = volum - 1, ans = volum;
}
fout << ans;
}