#include<bits/stdc++.h>
using namespace std;
long long sum=0,maxn=-1,s[200005],n,m;
bool check(int mid)
{
int cnt=1;
long long k=0;
for(int i=1;i<=n;++i)
{
if(k+s[i]<=mid) k+=s[i];
else
{
cnt++;
k=s[i];
}
}
if(cnt<=m) return 1;
else return 0;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i)
{
cin>>s[i];
sum+=s[i];
maxn=s[i]>maxn?s[i]:maxn;
}
long long l=maxn,r=sum,mid,k;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)==1)
{
r=mid-1;
}
else l=mid+1;
}
cout<<l;
return 0;
}