#include <bits/stdc++.h>
using namespace std;
long long int mod = 1e9 + 7;
long long int dx[] = {0, 0, 1, -1};
long long int dy[] = {1, -1, 0, 0};
long long int m = 0, n, res = 0, k;
string s2, ch = "", s, t, s1 = "";
vector<pair<string, long long int> > vm;
vector<pair<pair<long long int, long long int>, long long int> > vvv;
vector<pair<long long int, long long int> > vv, vv2;
vector<long long int> v[200005], v2, v1;
long long int a[500005], vis[500005], dp[500005];
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long int i = 0, x = 0, z = 0, y = 0, j = 0, q, mx = 0, idx = 0, ok = 0,
                l = 0, r = 0, negatif = 0, positif = 0, l1, r1, p, t, d;
  set<pair<long long int, long long int> >::iterator itp;
  cin >> n >> k >> d;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
    dp[i] = 0;
  }
  sort(a + 1, a + 1 + n);
  dp[0] = 1;
  dp[1] = -1;
  for (i = 1; i <= n; i++) {
    if (!dp[i - 1]) continue;
    dp[i] += dp[i - 1];
    x = a[i] + d;
    l = i + k - 1;
    r = upper_bound(a + i, a + 1 + n, x) - a - 1;
    if (r >= l) {
      dp[l]++;
      dp[r + 1]--;
    }
  }
  if (dp[n])
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
