#include <bits/stdc++.h>
using namespace std;
const int MAX = 100005;
struct node {
  int id, val;
} ca[MAX];
int n, K;
bool flag[MAX];
long long tot;
int cmp(node a, node b) { return a.val > b.val; }
int main() {
  int i, j, k;
  while (scanf("%d%d", &n, &K) != EOF) {
    scanf("%lld", &tot);
    for (i = 1; i <= n; i++) {
      scanf("%lld", &ca[i].val);
      ca[i].id = i;
    }
    sort(ca + 1, ca + n, cmp);
    long long sum = 0;
    int res = n;
    for (i = 1; i < K; i++) {
      sum += ca[i].val;
      flag[ca[i].id] = true;
      res = min(res, ca[i].id);
    }
    if (sum + ca[K].val <= tot) {
      printf("%d\n", n);
      continue;
    }
    for (i = 1; i < n; i++) {
      if (!flag[ca[i].id]) {
        if (sum + ca[i].val > tot) res = min(res, ca[i].id);
      }
    }
    printf("%d\n", res);
  }
  return 0;
}
