#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=111111;
int a[maxn];
int n,m;
bool judge(int mid)
{
int st=0;
int cont=0;
for(int i=0;i<n;i++)
{
st+=a[i];
if(st>mid)
{
cont++;
st=a[i];
}
}
if(cont<m)
return true;
else
return false;
}
int main()
{
cin>>n>>m;
int sum=0;
int max1=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]>max1)
max1=a[i];
sum+=a[i];
}
int l=max1;
int r=sum;
int ans;
while(l<=r)
{
int mid=(l+r)/2;
if(judge(mid))
{
r=mid-1;
ans=mid;
}
else
{
l=mid+1;
}
}
printf("%d\n",ans);
return 0;
}