#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int arr[N];
int n, k, ans;
bool check(int mid) {
int y = k-1;
int cz = 0;
for (int i = 1; i <= n; i++) {
if (arr[i]+cz <= mid) {
cz += arr[i];
}
else {
cz = arr[i];
y--;
}
}
if (y >= 0) return 1;
return 0;
}
void sc() {
int l = 0, r = 1e9 + 10;
while (l < r) {
int mid = l + r >> 1;
if (!check(mid)) l = mid+1;
else r = mid;
}
ans = r;
}
int main() {
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> arr[i];
sc();
cout << ans;
}