#include<iostream>
using namespace std;
int n, m, a[100009];
int cha(int x)
{
int i = 1, k = 0, y = 1;
while (i <= n)
{
k += a[i];
if (k > x)
{
k = a[i]; y++;
}
i++;
}
return y > m;
}
int main()
{
cin >> n >> m;
int ma = 0, sum = 0;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
ma = max(a[i], ma);
sum += a[i];
}
int s = ma, r = sum;
if (!cha(s) && cha(s - 1))r = s;
else
while (s < r - 1)
{
int t = s + (r - s) / 2;
if (cha(t))
s = t;
else
r = t;
}
cout << r;
}