#include <bits/stdc++.h>
using namespace std;
struct T {
  long long nu, p;
  bool operator<(const T& o) const {
    if (nu > o.nu) return true;
    if (nu == o.nu && p > o.p) return true;
    return false;
  }
};
long long n, k, m;
T plazas[111111];
long long sum[111111];
long long donde[111111];
int main() {
  cin >> n >> k >> m;
  for (int i = 0; i < n; i++) cin >> plazas[i].nu, plazas[i].p = i;
  n--;
  sort(plazas, plazas + n);
  for (int i = 0; i < n; i++) {
    donde[plazas[i].p] = i;
    sum[i] = plazas[i].nu;
    if (i) sum[i] += sum[i - 1];
  }
  if (sum[n - 1] <= m)
    cout << n + 1;
  else {
    bool ok = false;
    long long ss = 0, tt;
    ss = sum[k - 1];
    if (ss <= m)
      cout << n + 1;
    else {
      ss = 0;
      if (k > 1) ss = sum[k - 2];
      for (int i = 0; i < n && !ok; i++) {
        long long p = donde[i];
        long long tss = ss;
        if (p < k - 2)
          tss += plazas[k - 1].nu;
        else
          tss += plazas[p].nu;
        if (tss > m) {
          ok = true;
          cout << i + 1;
        }
      }
    }
  }
  return 0;
}
