#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
bool prime(int n){
    if(n%2==0){
        return false;
    }
    int i = 3;
    while(i*i<n){
        if(n%i==0){
            return false;
        }
        i+=2;
    }
    return true;
}

bool checkdiff(int j, string s){
    for(int i =0;i<s.size();i++){
        if(s[i] < s[i%j]){
            return false;
        }
    }
    return true;
}

int main(int argc, const char * argv[]) {
    long long int test;
    test = 1;
    //cin >> test;
    while(test--){
        long long int n, k,x,j=0,t;
        cin >> n >> k >> x;
        vector<long long int> v(n,0), a;
        for(int i=0;i<n;i++){
            cin >> v[i];
        }
        sort(v.begin(),v.end());
        for(int i =0;i<n-1;i++){
            if(v[i+1]-v[i] > x){
                a.push_back((v[i+1]-v[i])/x);
                if( (v[i+1]-v[i]) % x == 0){
                    a[a.size()-1]--;
                }
            }
        }
        sort(a.begin(), a.end());
        while(j < a.size()){
            k -= a[j];
            if(k < 0){
                break;
            }
            j++;
        }
        
        cout << a.size() - j + 1;
    }
    return 0;
}


