#include <bits/stdc++.h>
using namespace std ;
#define ll long long
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fir first
#define sec second
#define piint pair < int , int >
#define FOR( i , a , b ) for (int i = (a) , _b = (b) ; i <= _b ; i ++ )
#define pb push_back
#define str string
#define ALL(a) (a).begin() , (a).end()
#define rep( i , a , b) for (int i = (a) ; i < (b) ; i ++ )
#define ld long double
const int maxn = 5 * 1e5;
#define debug 0
#define oo (ll)(1e18)
bool dp[maxn+3];
ll a[maxn+3 ];
ll sum[maxn+3];
void input(){
}
#define name "TASK"
int main(){
fast
if(fopen(name".INP","r")) {
freopen (name".INP","r",stdin);
freopen (name".OUT","w",stdout);
}
ll n ; cin >> n ;
ll k , d ;
cin >> k >> d ;
FOR ( i , 1 , n ) cin >> a[i];
sort ( a + 1 , a + n + 1 );
// voi moi cay but chi thuoc 1 hop
// va voi dieu kien la moi can trong day khong duoc chenh lech qua d
// neu no khong co con nao ai - aj <= d && aj - ai <= d thi phai tao them 1 hop but
// se co toi da n / k hop but
FOR ( i , 0 , n ) dp[i] = 0 ;
dp[0] = 1 ;
sum[0] = 1 ;
int j = 1 ;
for (int i = 1 ; i <= n ; i ++ ) {
while ( a[i] - a[j] > d && ( j + 1 ) <= i ) {
j ++ ;
}
if ( i - j + 1 >= k ) {
int c = sum[ i - k ] - ( (( j -1 ) > 0 ) ? sum[j-2] : 0) ; // sum[j-2];
assert ( i >= k ) ;
if ( c > 0 )
dp[i] = 1 ;
}
sum[i] = sum[i-1] + dp[i] ;
}
if ( dp[n] ) cout << "YES" << '\n' ;
else cout << "NO" << '\n' ;
cerr << "\nTIME: = " << (1.0*clock())/CLOCKS_PER_SEC << '\n';
return(0) ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOyAKCgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGZpciBmaXJzdCAKI2RlZmluZSBzZWMgc2Vjb25kIAojZGVmaW5lIHBpaW50IHBhaXIgPCBpbnQgLCBpbnQgPgojZGVmaW5lIEZPUiggaSAsIGEgLCBiICkgZm9yIChpbnQgaSA9IChhKSAsIF9iID0gKGIpIDsgaSA8PSBfYiA7IGkgKysgKSAgCiNkZWZpbmUgcGIgcHVzaF9iYWNrIAojZGVmaW5lIHN0ciBzdHJpbmcgCiNkZWZpbmUgQUxMKGEpIChhKS5iZWdpbigpICwgKGEpLmVuZCgpIAojZGVmaW5lIHJlcCggaSAsIGEgLCBiKSBmb3IgKGludCBpID0gKGEpIDsgaSA8IChiKSA7IGkgKysgKQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCmNvbnN0IGludCBtYXhuID0gNSAqIDFlNTsKI2RlZmluZSBkZWJ1ZyAwCiNkZWZpbmUgb28gKGxsKSgxZTE4KQoKCgpib29sIGRwW21heG4rM107CmxsIGFbbWF4biszIF07CmxsIHN1bVttYXhuKzNdOwoKCnZvaWQgaW5wdXQoKXsKfQojZGVmaW5lIG5hbWUgIlRBU0siIAppbnQgbWFpbigpewogICAgZmFzdCAKICAgIGlmKGZvcGVuKG5hbWUiLklOUCIsInIiKSkgewogICAgICAgIGZyZW9wZW4gKG5hbWUiLklOUCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuIChuYW1lIi5PVVQiLCJ3IixzdGRvdXQpOwogICAgfQogICAgbGwgbiA7IGNpbiA+PiBuIDsKICAgIGxsIGsgLCBkIDsKICAgIGNpbiA+PiBrID4+IGQgOwoKICAgCUZPUiAoIGkgLCAxICwgbiApICBjaW4gPj4gYVtpXTsKICAgCXNvcnQgKCBhICsgMSAsIGEgKyBuICsgMSApOwogICAJLy8gdm9pIG1vaSBjYXkgYnV0IGNoaSB0aHVvYyAxIGhvcCAKICAgCS8vIHZhIHZvaSBkaWV1IGtpZW4gbGEgbW9pIGNhbiB0cm9uZyBkYXkga2hvbmcgZHVvYyBjaGVuaCBsZWNoIHF1YSBkIAogIAkvLyBuZXUgbm8ga2hvbmcgY28gY29uIG5hbyBhaSAtIGFqIDw9IGQgJiYgYWogLSBhaSA8PSBkIHRoaSBwaGFpIHRhbyB0aGVtIDEgaG9wIGJ1dCAKICAJLy8gc2UgY28gdG9pIGRhIG4gLyBrIGhvcCBidXQgCiAgCiAJRk9SICggaSAsIDAgLCBuICkgZHBbaV0gPSAwIDsKIAlkcFswXSA9IDEgOwogCXN1bVswXSA9IDEgOwoKIAlpbnQgaiA9IDEgOyAKICAJZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpICsrICkgewogIAkJd2hpbGUgKCBhW2ldIC0gYVtqXSA+IGQgJiYgKCBqICsgMSApIDw9IGkgKSB7CiAgCQkJaiArKyA7CiAgCQl9CiAgCQlpZiAoIGkgLSBqICsgMSA+PSBrICkgewogIAkJCWludCBjID0gc3VtWyBpIC0gayBdIC0gKCAoKCBqIC0xICkgPiAwICkgID8gc3VtW2otMl0gOiAwKSA7IC8vIHN1bVtqLTJdOwogIAkJCWFzc2VydCAoIGkgPj0gayApIDsKICAJCQlpZiAoIGMgPiAwICkgCiAgCQkJCWRwW2ldID0gMSA7CiAgCQl9CiAgCQlzdW1baV0gPSBzdW1baS0xXSArIGRwW2ldIDsKICAJfQogIAlpZiAoIGRwW25dICkgY291dCA8PCAiWUVTIiA8PCAnXG4nIDsKICAJZWxzZSBjb3V0IDw8ICJOTyIgPDwgJ1xuJyA7CgoKICAgIGNlcnIgPDwgIlxuVElNRTogPSAiIDw8ICgxLjAqY2xvY2soKSkvQ0xPQ0tTX1BFUl9TRUMgPDwgJ1xuJzsKICAgIHJldHVybigwKSA7Cn0=