#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int n,c,m;
long long a[maxn];
int ok(int x){
long long st=a[0],cnt=1,mem=0;
for(int i=0;i<n;i++){
if((a[i]-st)>x || mem==c){
cnt++;
st=a[i];
mem=0;
}
mem++;
}
return cnt<=m;
}
int main(){
freopen("seminar.inp","r",stdin);
freopen("seminar.out","w",stdout);
cin >> n >> m >> c;
for(int i=0;i<n;i++) cin >> a[i];
sort(a,a+n);
long long l=0,r=a[n-1];
while(l<r){
long long mid=l+(r-l)/2;
if(ok(mid)){
r=mid;
}
else l=mid+1;
}
cout << l;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4bj0xZTUrNTsKCmludCBuLGMsbTsKbG9uZyBsb25nIGFbbWF4bl07CgppbnQgb2soaW50IHgpewogICAgbG9uZyBsb25nIHN0PWFbMF0sY250PTEsbWVtPTA7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBpZigoYVtpXS1zdCk+eCB8fCBtZW09PWMpewogICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgc3Q9YVtpXTsKICAgICAgICAgICAgbWVtPTA7CiAgICAgICAgfQogICAgICAgIG1lbSsrOwogICAgfQogICAgcmV0dXJuIGNudDw9bTsKfQoKaW50IG1haW4oKXsKICAgIGZyZW9wZW4oInNlbWluYXIuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigic2VtaW5hci5vdXQiLCJ3IixzdGRvdXQpOwogICAgY2luID4+IG4gPj4gbSA+PiBjOwogICAgZm9yKGludCBpPTA7aTxuO2krKykgY2luID4+IGFbaV07CiAgICBzb3J0KGEsYStuKTsKICAgIGxvbmcgbG9uZyBsPTAscj1hW24tMV07CiAgICB3aGlsZShsPHIpewogICAgICAgIGxvbmcgbG9uZyBtaWQ9bCsoci1sKS8yOwogICAgICAgIGlmKG9rKG1pZCkpewogICAgICAgICAgICByPW1pZDsKICAgICAgICB9CiAgICAgICAgZWxzZSBsPW1pZCsxOwogICAgfQogICAgY291dCA8PCBsOwp9Cg==