#include<iostream>
using namespace std;
long long N,C,a[100001],l,r,mid;
long long check(long long x)
{
long long i,y=0,z=0;
for(i=1;i<=N;i++)
{
if(y==x)
{
z++;
y=0;
}
y+=(a[i]-a[i-1]);
}
if(z>=C)
return 1;
else
return 0;
}
int main()
{
long long i;
cin>>N>>C;
for(i=1;i<=N;i++)
{
cin>>a[i];
r=max(r,a[i]);
}
while(l<=r)
{
mid=l+r>>1;
if(check(mid)==1)
l=mid+1;
else
r=mid-1;
}
if(l==0)
{
cout<<"0";
return 0;
}
cout<<l-1;
return 0;
}