#include <bits/stdc++.h>
using namespace std;
const int n = 300;
struct second {
  int b = 0;
  bool p = false, c = false;
};
void candle_put(vector<second> &v, int x, int t, int r) {
  int k = x - 1;
  while (v.at(x).b < r) {
    if (k >= 0) v.at(k).c = true;
    for (int i = k + 1; i <= k + t; i++)
      if (i >= 0 && i < n) v.at(i).b++;
    k--;
  }
}
void candle_first(vector<second> v, int r, int &sum) {
  int i = 0;
  while (!v.at(i).p) i++;
  if (i < r) sum += r - i;
}
int main() {
  int m, t, r;
  cin >> m >> t >> r;
  vector<second> v(n);
  for (int i = 0; i < m; i++) {
    int k;
    cin >> k;
    v.at(k - 1).p = true;
  }
  if (t >= r) {
    for (int i = 0; i < n; i++) {
      if (v.at(i).p) candle_put(v, i, t, r);
    }
    int sum = 0;
    for (int i = 0; i < n; i++)
      if (v.at(i).c) sum++;
    candle_first(v, r, sum);
    cout << sum;
  } else
    cout << "-1";
  return 0;
}
