#include <bits/stdc++.h>
using namespace std;
int ghost[500];
int main() {
  int m, t, r;
  cin >> m >> t >> r;
  for (int i = 0; i < m; ++i) {
    cin >> ghost[i];
  }
  sort(ghost, ghost + m);
  set<int> st;
  if (r > t) {
    cout << "-1" << endl;
    return 0;
  }
  long long int cx = 0;
  int y = ghost[0];
  y = t + y;
  for (int i = 1; i <= r; ++i) {
    cx++;
    st.insert(y--);
  }
  set<int>::iterator it;
  for (int i = 1; i < m; ++i) {
    it = st.begin();
    int x = ghost[i];
    while ((*it) <= ghost[i]) {
      st.erase(it);
      st.insert(x + t);
      x--;
      it = st.begin();
      cx++;
    }
  }
  cout << cx << endl;
  return 0;
}
