#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, k;
  scanf("%d", &n);
  scanf("%d", &m);
  scanf("%d", &k);
  vector<int> v;
  for (int(i) = 0; (i) < (int)(n); (i)++) {
    int a;
    scanf("%d", &a);
    v.push_back(a);
  }
  sort((v).begin(), (v).end());
  int num = m;
  if (num <= k)
    cout << "0" << endl;
  else {
    int ans = 0;
    for (int pos = v.size() - 1; pos >= 0; pos--) {
      if (k >= m) break;
      k = k + v[pos] - 1;
      ans++;
    }
    if (k >= m)
      cout << ans << endl;
    else
      cout << "-1" << endl;
  }
}
