#include <bits/stdc++.h>
using namespace std;
int main() {
  int m, t, r;
  cin >> m >> t >> r;
  int a[m];
  for (int i = 0; i < m; i++) cin >> a[i];
  sort(a, a + m);
  int num[1200];
  bool used[1200];
  for (int i = 0; i < 1200; i++) used[i] = false;
  for (int i = 0; i < 1200; i++) num[i] = 0;
  for (int i = 0; i < m; i++) {
    if (num[a[i] + 600] >= r)
      continue;
    else {
      int diff = r - num[a[i] + 600];
      for (int j = a[i] - 1; j >= a[i] - diff; j--) {
        if (used[j + 600]) {
          cout << -1 << endl;
          return 0;
        }
        for (int k = 1; k <= t; k++) {
          num[j + k + 600]++;
        }
        used[j + 600] = true;
      }
    }
    if (num[a[i] + 600] < r) {
      cout << -1 << endl;
      return 0;
    }
  }
  int count = 0;
  for (int i = 0; i < 1200; i++)
    if (used[i]) count++;
  cout << count << endl;
}
