#include <bits/stdc++.h>
using namespace std;
long long n, s, l, tab[100005], x, y, k, w, last, maks, minn;
bool zle;
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> s >> l;
  for (int i = 0; i < n; i++) cin >> tab[i];
  for (int i = 0; i < n; i++) {
    k = 1;
    maks = tab[i];
    minn = tab[i];
    for (x = i + 1; x < n; x++) {
      maks = max(maks, tab[x]);
      minn = min(minn, tab[x]);
      if (maks - minn <= s)
        k++;
      else
        break;
    }
    if (maks - minn > s) x--;
    maks = tab[i];
    minn = tab[i];
    for (y = i - 1; y >= last; y--) {
      maks = max(maks, tab[y]);
      minn = min(minn, tab[y]);
      if (maks - minn <= s)
        k++;
      else
        break;
    }
    if (maks - minn > s) y++;
    if (k < l) {
      zle = true;
      break;
    }
    last = y + l;
    w++;
    i = x;
  }
  if (zle) w = -1;
  cout << w << "\n";
  return 0;
}
