#include <bits/stdc++.h>
using namespace std;
struct Node {
  int v, i;
  bool operator<(const Node &oth) const {
    return v > oth.v || v == oth.v && i > oth.i;
  }
} s[100005];
int a[100005];
bool f[100005];
int main() {
  int n, k, i;
  long long b, t;
  scanf("%d %d", &n, &k);
  scanf("%I64d", &b);
  for (i = 1; i <= n; i++) {
    scanf("%d", a + i);
    s[i].v = a[i];
    s[i].i = i;
  }
  sort(s + 1, s + n);
  t = 0;
  for (i = 1; i < k; i++) {
    t += s[i].v;
    f[s[i].i] = true;
  }
  for (i = 1; i < n; i++) {
    if (f[i] && t + s[k].v > b) {
      break;
    }
    if (!f[i] && t + a[i] > b) {
      break;
    }
  }
  printf("%d\n", i);
  return 0;
}
