#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int a[16001],N,K,nrmax,i,z,S,r,zmin,p1,p2,mij;
void suma()
{
S=0;
r=1;
for(i=1;i<=N;i++)
{
S=S+a[i];
if(S>z)
{
S=a[i];
r++;
}
}
}
int main ()
{
fin>>N>>K;
nrmax=0;
for(i=1;i<=N;i++)
{
fin>>a[i];
if(a[i]>nrmax)
{
nrmax=a[i];
}
}
p1=nrmax;
p2=256000001;
while(p1<=p2)
{
mij=(p1+p2)/2;
z=mij;
suma();
if(r<=K)
{
p2=mij-1;
}
else
{
p1=mij+1;
}
}
fout<<p1;
fin.close();
fout.close();
return 0;
}