#include <bits/stdc++.h>
using namespace std;
int a[100005];
int main() {
  int n, l, s;
  cin >> n >> s >> l;
  int i;
  for (i = 0; i < n; ++i) scanf("%d", a + i);
  int j, k;
  int lf, rg;
  int key = 1;
  int maxx, minn;
  k = 0;
  lf = 0;
  int res = 0;
  while (key) {
    maxx = a[k];
    minn = a[k];
    i = k + 1;
    for (; i < n; ++i) {
      if (a[i] - minn > s || maxx - a[i] > s) break;
      maxx = max(maxx, a[i]);
      minn = min(minn, a[i]);
    }
    if (i - lf < l) {
      cout << "-1" << endl;
      exit(0);
    }
    k = i;
    ++res;
    if (i == n) break;
    maxx = a[k];
    minn = a[k];
    for (i = k - 1; i >= lf + l; --i) {
      if (a[i] - minn > s || maxx - a[i] > s) break;
      maxx = max(maxx, a[i]);
      minn = min(minn, a[i]);
    }
    lf = i + 1;
  }
  cout << res << endl;
  return 0;
}
