#include <bits/stdc++.h>
int const MAX = 1e4 + 5;
int w[MAX], vis[MAX];
int main() {
  int m, t, r, ans = 0;
  scanf("%d %d %d", &m, &t, &r);
  if (t < r) {
    printf("-1\n");
    return 0;
  }
  memset(vis, 0, sizeof(vis));
  for (int i = 0; i < m; i++) scanf("%d", &w[i]);
  for (int i = 0; i < m; i++) {
    for (int j = w[i] - 1; vis[w[i]] < r; j--) {
      for (int k = j + 1; k <= j + t; k++)
        if (k >= 0) vis[k]++;
      ans++;
    }
  }
  printf("%d\n", ans);
}
