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