#include<bits/stdc++.h>
using namespace std;
const int w=114514;
long long a[w];
long long n,m,l,r;
long long check(long long ans)
{
long long cnt=0,s=0;
for(int i=1;i<=n;i++)
{
if(a[i]+cnt<=ans)
{
cnt+=a[i];
}
else
{
cnt=a[i];
s++;
}
}
return cnt>=m;
}
int main()
{
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
l=max(l,a[i]);
r+=a[i];
}
while(l<r)
{
long long mid=(l+r)/2;
if(!check(mid))
{
l=mid+1;
}
else
{
r=mid;
}
}
if(check(l))
{
printf("%lld\n",l);
}
return 0;
}