#include <iostream>
#include <cstdio>
using namespace std;
const int N=1e5+5;
int a[N],n,m;long long l,r;
bool check(int k)
{
long long l=0,cnt;
for(int i=1;i<=n;i++)
{
if(cnt+a[i]<=k)cnt+=a[i];
else cnt=a[i],l++;
}
return l>m;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);l=max(l,1ll*a[i]);r+=a[i];
}
while(l<r)
{
long long mid=l+r>>1;
if(!check(mid))r=mid;
else l=mid+1;
}
cout<<l;
return 0;
}