#include<bits/stdc++.h>
using namespace std;
long long a[1000000],n,m,l=0,r=0;
bool f(long long x)
{
long long tot=0,sum=0;
for(int i=1;i<=n;i++)
{
if(a[i]+sum<=x) sum+=a[i];
else tot++,sum=a[i];
}
return tot<=m;
}
long long find(long long L,long long R)
{
long long ans,mid;
while(L<=R)
{
mid=(L+R)/2;
if(f(mid)) ans=mid,R=mid-1;
else L=mid+1;
}
return ans;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i],l=max(l,a[i]),r+=a[i];
cout<<find(l,r);
return 0;
}