#include <cstdio>
using namespace std;
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int n, k, v[16001];
scanf("%d%d", &n, &k);
unsigned long long sum=0;
int mx=0;
for(int i=1; i<=n; i++)
{
scanf("%d", &v[i]);
sum+=v[i];
if(v[i] > mx) mx=v[i];
}
unsigned long long left=mx, right=sum;
int p, ans;
while(left <= right)
{
int mid=(left+right)/2;
sum=0;
p=1;
for(int i=1; i<=n; i++)
{
if(sum+v[i] <= mid) sum+=v[i];
else
{
p++;
sum=v[i];
}
}
if(p <= k)
{
ans=mid;
right=mid-1;
}
else left=mid+1;
}
printf("%d", ans);
return 0;
}