#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[100005];
int n,c;
bool judge_num(int x)
{
int temp=a[0];
int d=1,i;
for(i=1;i<n;i++)
{
if(a[i]-temp>=x)
{
d++;
temp=a[i];
if(d>=c)
return true;
}
}
return false;
}
int take_ans()
{
int l,r,mid;
l=0;
r=a[n-1]-a[0];
while(l<=r)
{
mid=(l+r)/2;
if(judge_num(mid))
{
l=mid+1;
}
else
r=mid-1;
}
return l-1;
}
int main()
{
int i=0;
while(scanf("%d%d",&n,&c)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",%a[i]);
}
sort(a,a+n);
printf("%d\n", take_ans());
}
return 0;
}
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[100005];
int n,c;
bool judge_num(int x)
{
int temp=a[0];
int d=1,i;
for(i=1;i<n;i++)
{
if(a[i]-temp>=x)
{
d++;
temp=a[i];
if(d>=c)
return true;
}
}
return false;
}
int take_ans()
{
int l,r,mid;
l=0;
r=a[n-1]-a[0];
while(l<=r)
{
mid=(l+r)/2;
if(judge_num(mid))
{
l=mid+1;
}
else
r=mid-1;
}
return l-1;
}
int main()
{
int i=0;
while(scanf("%d%d",&n,&c)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",%a[i]);
}
sort(a,a+n);
printf("%d\n", take_ans());
}
return 0;
}