#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
struct par {
  int f, s;
  par(int a, int b) : f(a), s(b){};
  par(){};
  bool operator<(const par &p) const { return f > p.f; }
};
int a[maxn];
bool use[maxn];
int main() {
  int n, k;
  long long b;
  vector<par> v;
  scanf("%d%d%I64d", &n, &k, &b);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
    if (i < n - 1) v.push_back(par(a[i], i));
  }
  sort(v.begin(), v.end());
  v.push_back(par(0, n));
  long long sum = 0;
  for (int i = 0; i < k - 1; ++i) {
    use[v[i].s] = 1;
    sum += v[i].f;
  }
  for (int i = 0; i < n - 1; ++i) {
    long long res = sum + (use[i] ? v[k - 1].f : a[i]);
    if (res > b) {
      printf("%d\n", i + 1);
      return 0;
    }
  }
  printf("%d\n", n);
  return 0;
}
