#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool isValid(ll books, ll studentsGiven, vector<ll> &pages, ll pageLimit) {
ll studentsNeeded = 1, pagesReadByCurrStudent = pages[0];
if (pages[0] > pageLimit) {
return false;
}
for (int i = 1; i < books; i++) {
if (pages[i] > pageLimit) {
return false;
}
if (pagesReadByCurrStudent + pages[i] > pageLimit) {
studentsNeeded++;
pagesReadByCurrStudent = 0;
i--;
}
else {
pagesReadByCurrStudent += pages[i];
}
}
return studentsGiven >= studentsNeeded;
}
ll findMaxPages(ll books, ll students, vector<ll> &pages, ll s, ll e, ll sum) {
ll pagesRead = e;
while (s <= e) {
ll m = s + (e-s)/2;
if (isValid(books, students, pages, m)) {
pagesRead = m;
e = m-1;
}
else {
s = m+1;
}
}
return pagesRead;
}
int main() {
ll books, students, sum = 0;
cin >> books >> students;
vector<ll> pages(books);
for (ll i = 0; i < books; i++) {
cin >> pages[i];
sum += pages[i];
}
cout << findMaxPages(books, students, pages, 0, sum, sum);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmJvb2wgaXNWYWxpZChsbCBib29rcywgbGwgc3R1ZGVudHNHaXZlbiwgdmVjdG9yPGxsPiAmcGFnZXMsIGxsIHBhZ2VMaW1pdCkgewogICAgbGwgc3R1ZGVudHNOZWVkZWQgPSAxLCBwYWdlc1JlYWRCeUN1cnJTdHVkZW50ID0gcGFnZXNbMF07CiAgICBpZiAocGFnZXNbMF0gPiBwYWdlTGltaXQpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8IGJvb2tzOyBpKyspIHsKICAgICAgICBpZiAocGFnZXNbaV0gPiBwYWdlTGltaXQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAocGFnZXNSZWFkQnlDdXJyU3R1ZGVudCArIHBhZ2VzW2ldID4gcGFnZUxpbWl0KSB7CiAgICAgICAgICAgIHN0dWRlbnRzTmVlZGVkKys7CiAgICAgICAgICAgIHBhZ2VzUmVhZEJ5Q3VyclN0dWRlbnQgPSAwOwogICAgICAgICAgICBpLS07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBwYWdlc1JlYWRCeUN1cnJTdHVkZW50ICs9IHBhZ2VzW2ldOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBzdHVkZW50c0dpdmVuID49IHN0dWRlbnRzTmVlZGVkOwp9CmxsIGZpbmRNYXhQYWdlcyhsbCBib29rcywgbGwgc3R1ZGVudHMsIHZlY3RvcjxsbD4gJnBhZ2VzLCBsbCBzLCBsbCBlLCBsbCBzdW0pIHsKICAgIGxsIHBhZ2VzUmVhZCA9IGU7CiAgICB3aGlsZSAocyA8PSBlKSB7CiAgICAgICAgbGwgbSA9IHMgKyAoZS1zKS8yOwogICAgICAgIGlmIChpc1ZhbGlkKGJvb2tzLCBzdHVkZW50cywgcGFnZXMsIG0pKSB7CiAgICAgICAgICAgIHBhZ2VzUmVhZCA9IG07CiAgICAgICAgICAgIGUgPSBtLTE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBzID0gbSsxOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBwYWdlc1JlYWQ7Cn0KaW50IG1haW4oKSB7CiAgICBsbCBib29rcywgc3R1ZGVudHMsIHN1bSA9IDA7CiAgICBjaW4gPj4gYm9va3MgPj4gc3R1ZGVudHM7CiAgICB2ZWN0b3I8bGw+IHBhZ2VzKGJvb2tzKTsKICAgIGZvciAobGwgaSA9IDA7IGkgPCBib29rczsgaSsrKSB7CiAgICAgICAgY2luID4+IHBhZ2VzW2ldOwogICAgICAgIHN1bSArPSBwYWdlc1tpXTsKICAgIH0KICAgIGNvdXQgPDwgZmluZE1heFBhZ2VzKGJvb2tzLCBzdHVkZW50cywgcGFnZXMsIDAsIHN1bSwgc3VtKTsKICAgIHJldHVybiAwOwp9