#include <bits/stdc++.h>
using namespace std;
int a[123456];
int n, L, s;
int flag = 1;
int main() {
  int left, right;
  int ans = 0;
  cin >> n >> s >> L;
  int last = 0;
  for (int i = 0; i < n; i++) cin >> a[i];
  int pos = 0;
  for (; pos < n; pos++) {
    int maxm, minm;
    int cnt = 1;
    maxm = minm = a[pos];
    right = pos + 1;
    while (right < n) {
      maxm = max(maxm, a[right]);
      minm = min(minm, a[right]);
      if (maxm - minm <= s)
        cnt++;
      else
        break;
      right++;
    }
    right--;
    maxm = minm = a[pos];
    left = pos - 1;
    while (left >= last) {
      maxm = max(maxm, a[left]);
      minm = min(minm, a[left]);
      if (maxm - minm <= s)
        cnt++;
      else
        break;
      left--;
    }
    left++;
    if (cnt < L) {
      flag = 0;
      break;
    }
    ans++;
    last = left + L;
    pos = right;
  }
  if (flag == 0) ans = -1;
  cout << ans;
  return 0;
}
