import java.math.BigInteger;
import java.util.*;
public class Main {
static int n,m;
static BigInteger[] a=new BigInteger[1000010];
static boolean cheak(int x){
BigInteger ans =new BigInteger("0");
ans=a[1];int num=1;
for (int i=2;i<=n;i++ ){
if (a[i].subtract(ans).compareTo(new BigInteger(Integer.toString(x)))>=0) {
num++;ans=a[i];
}
if (num>=m) break;
}
if (num>=m) return true;
else return false;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n=in.nextInt(); m=in.nextInt();
for (int i=1;i<=n;i++) a[i]=new BigInteger(Integer.toString(in.nextInt()));
Arrays.sort(a,1,1+n);
int l=1,r=(int)1e9;
int ans=0;
while (l<=r){
int mid=l+(r-l)/2;
if (cheak(mid)) {
ans=mid; l=mid+1;
}
else r=mid-1;
}
System.out.print(ans);
}
}
答案是对的但是内存爆了