#include <bits/stdc++.h>
using namespace std;
long long arr[1000000], arr2[1000][1000];
map<long long, bool> mop;
map<long long, long long> mopp;
int main() {
  int n, m, k, a = 0, i;
  scanf("%d%d%d", &n, &m, &k);
  ;
  for (i = 0; i < n; i++) {
    cin >> arr[i];
  }
  sort(arr, arr + n);
  if (k >= m) {
    printf("%d\n", 0);
    ;
    return 0;
  }
  for (i = n - 1; i >= 0; i--) {
    k--;
    k += arr[i];
    if (k >= m) {
      printf("%d\n", n - i);
      ;
      return 0;
    }
  }
  printf("%d\n", -1);
  ;
  return 0;
}
