#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