#include <bits/stdc++.h>
using namespace std;
const int eps = 1e-8;
const int INF = 1000000000;
const int maxn = 1000 + 10;
int m, t, r, a[3100], w[310], ans = 0;
int main() {
  cin >> m >> t >> r;
  memset(a, 0, sizeof(a));
  for (int i = 1; i <= m; i++) {
    scanf("%d", &w[i]);
  }
  if (t < r) {
    cout << -1 << endl;
  } else {
    for (int i = 1; i <= m; i++) {
      if (a[w[i]] >= r) {
        continue;
      } else {
        int need = r - a[w[i]];
        ans += need;
        for (int k = 1; k <= need; k++) {
          for (int j = w[i] + 1; j <= w[i] - k + t; j++) {
            a[j]++;
          }
        }
      }
    }
    cout << ans << endl;
  }
  return 0;
}
