#include <bits/stdc++.h>
using namespace std;

#define mod 1000000007
#define N 100005
#define ll long long
#define ull unsigned long long
#define FOR(i, j, k) for (ll i = j; i < k; i++)
#define rloop(i, j, k) for (int i = j; i >= k; i--)
#define rep(i, k) for (ll i = (0); i < (k); i++)
#define forall(it, l) for (auto it = l.begin(); it != l.end(); it++)
#define pb push_back
#define F first
#define S second
#define sz(x) (int)(x).size()
#define lin "\n"
#define Max (int)INT_MAX
#define Min (int)INT_MIN
#define fast_io ios_base::sync_with_stdio(0), cin.tie(NULL), cout.tie(0)
#define PI 2 * acos(0.0)

typedef vector<int> vi;
typedef pair<int, int> pi;
typedef vector<ll> vll;
typedef pair<ll, ll> pll;   

void solve(){
    ll n, k, x;
    cin >> n >> k >> x;
    vll v(n, 0LL), b(n - 1, 0LL);
    rep(i, n){
        cin >> v[i];
    }
    sort(v.begin(), v.end());
    ll ans = 0LL;
    rep(i, n - 1){
       b[i] = max(0LL, (v[i + 1] - v[i] - 1) / x);
    }
    sort(b.begin(), b.end());
    rep(i, n - 1){
        if(b[i] <= k){
            k -= b[i];
            ans++;
        }
    }
    cout << n - ans << lin;
}

/*
	* int overflow, array bounds, check constraints
    * Don't forget to clear the previous test's array, vectors, ... etc.
	* special cases
	* do smth instead of nothing and stay organized
	* WRITE STUFF DOWN
	* DON'T GET STUCK ON ONE APPROACH
*/

int main()
{
    auto start = clock();
    fast_io;
    // freopen("in.txt", "r+", stdin);
    // freopen("out.txt", "w+", stdout);
    int t = 1;
    // cin >> t;
    while (t--){
        solve();
    }
    auto stop = clock();
    cerr << "time taken:" << double(stop - start) / double(CLOCKS_PER_SEC) << " s" << endl;
    return 0;
 }
