#include <bits/stdc++.h>
using namespace std;
vector<long long> arr;
int n,m,x;
bool xinxiaodecheck(long long y) {
int op = 1;
for(int i=1;i<n;i++) {
if (arr[i]-arr[i-1]>y) op++;
}
if (op > m) return false;
int l = 0;
for (int i=1;i<n;i++) {
long long a = arr[i]-arr[i-1];
if (a>x && a<=2*y) l++;
}
return (l>=op-x);
}
int main() {
cin>>n>>m>>x;
arr.resize(n);
for (int i=1; i<=n;i++) {
cin>>arr[i];
}
sort(arr.begin(),arr.end());
long long l=1,r=arr[n-1]-arr[0];
long long ans=r;
while(l<=r){
long long mid=l+(r-l)/2;
if (xinxiaodecheck(mid)) {
ans=mid;
r=mid-1;
} else {
l=mid+1;
}
}
cout<<ans<<"\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjxsb25nIGxvbmc+IGFycjsKaW50IG4sbSx4Owpib29sIHhpbnhpYW9kZWNoZWNrKGxvbmcgbG9uZyB5KSB7CiAgICBpbnQgb3AgPSAxOwogICAgZm9yKGludCBpPTE7aTxuO2krKykgewogICAgICAgIGlmIChhcnJbaV0tYXJyW2ktMV0+eSkgb3ArKzsKICAgIH0KICAgIGlmIChvcCA+IG0pIHJldHVybiBmYWxzZTsgIAogICAgaW50IGwgPSAwOwogICAgZm9yIChpbnQgaT0xO2k8bjtpKyspIHsKICAgICAgICBsb25nIGxvbmcgYSA9IGFycltpXS1hcnJbaS0xXTsKICAgICAgICBpZiAoYT54ICYmIGE8PTIqeSkgbCsrOwogICAgfQogICAgcmV0dXJuIChsPj1vcC14KTsKfQppbnQgbWFpbigpIHsKICAgIGNpbj4+bj4+bT4+eDsKICAgIGFyci5yZXNpemUobik7CiAgICBmb3IgKGludCBpPTE7IGk8PW47aSsrKSB7CiAgICAgICAgY2luPj5hcnJbaV07CiAgICB9CiAgICBzb3J0KGFyci5iZWdpbigpLGFyci5lbmQoKSk7CiAgICBsb25nIGxvbmcgbD0xLHI9YXJyW24tMV0tYXJyWzBdOwogICAgbG9uZyBsb25nIGFucz1yOwogICAgd2hpbGUobDw9cil7CiAgICAgICAgbG9uZyBsb25nIG1pZD1sKyhyLWwpLzI7CiAgICAgICAgaWYgKHhpbnhpYW9kZWNoZWNrKG1pZCkpIHsKICAgICAgICAgICAgYW5zPW1pZDsKICAgICAgICAgICAgcj1taWQtMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsPW1pZCsxOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGFuczw8IlxuIjsKICAgIHJldHVybiAwOwp9