//satyaki3794
#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define MOD (1000000007LL)
#define LEFT(n) (2*(n))
#define RIGHT(n) (2*(n)+1)

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> ii;

ll pwr(ll base, ll p, ll mod = MOD){
ll ans = 1;while(p){if(p&1)ans=(ans*base)%mod;base=(base*base)%mod;p/=2;}return ans;
}


ll gcd(ll a, ll b){
    if(b == 0)  return a;
    return gcd(b, a%b);
}


int n, k, arr[100005];

bool possible(int mid){
    int last = -MOD, rem = k;
    for(int i=1;i<=n;i++){
        if(arr[i] <= last)  continue;
        if(arr[i]-last <= mid)  continue;
        int j = i;
        while(j <= n && (arr[j] - arr[i]) <= mid)
            j++;
        last = arr[j-1];
        rem--;
        if(rem < 0) return false;
    }
    return true;
}



int main(){

    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>arr[i];
    sort(arr+1, arr+n+1);

    int ans = MOD, lo = 0, hi = MOD;
    while(lo <= hi){
        int mid = (lo + hi)/2;
        if(possible(mid)){
            ans = min(ans, mid);
            hi = mid-1;
        }
        else{
            lo = mid+1;
        }
    }

    cout<<ans;
    return 0;
}







