#include <bits/stdc++.h>
using namespace std;
void islam() {
  cin.tie(0);
  std::ios::sync_with_stdio(0);
}
int main() {
  long long n, x, m, k;
  cin >> n >> m >> k;
  vector<long long> v;
  for (int i = 0; i < n; i++) {
    cin >> x;
    v.push_back(x);
  }
  if (m <= k) {
    puts("0");
    return 0;
  }
  long long s = 0, mx = m;
  sort(v.rbegin(), v.rend());
  for (int i = 0; i < v.size(); i++) {
    s += v[i];
    k--;
    m -= s;
    if (s >= mx || m <= k) {
      cout << i + 1;
      return 0;
    }
    m = mx;
    if (!k) {
      s--;
      for (int j = i + 1; j < v.size(); j++) {
        s += v[j];
        if (s >= mx) {
          cout << j + 1;
          return 0;
        }
        s--;
        if (v[j] == 1) break;
      }
      break;
    }
  }
  cout << -1;
  return 0;
}
