#include <bits/stdc++.h>
int n, m, k;
int x[60];
int cmp(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int main() {
  int i;
  int sum = 0;
  scanf("%d %d %d", &n, &m, &k);
  for (i = 0; i < n; i++) scanf("%d", &x[i]);
  if (m <= k) {
    printf("0\n");
    return 0;
  }
  qsort(x, n, sizeof(x[0]), cmp);
  sum = k;
  for (i = 0; i < n; i++) {
    sum = sum + x[i] - 1;
    if (sum >= m) break;
  }
  if (i == n && sum < m) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", i + 1);
  return 0;
}
