#include <bits/stdc++.h>
using namespace std;
struct Node {
  int num;
  long long a;
  int z;
} x[100010];
int n, k;
long long b;
bool cmp1(Node p, Node q) { return (p.a > q.a || p.a == q.a && p.num > q.num); }
bool cmp2(Node p, Node q) { return (p.z < q.z || p.z == q.z && p.num < q.num); }
int main() {
  scanf("%d%d", &n, &k);
  cin >> b;
  for (int i = 1; i <= n; i++) {
    x[i].num = i;
    scanf("%d", &x[i].a);
    x[i].z = 0;
  }
  sort(x + 1, x + n, cmp1);
  long long bb = 0;
  for (int i = 1; i < k; i++) {
    bb += x[i].a;
    x[i].z = 1;
  }
  if (bb + x[k].a <= b)
    printf("%d\n", n);
  else {
    for (int i = 1; i < k; i++)
      if (bb + x[k].a > b) x[i].z = 0;
    for (int i = k; i <= n; i++)
      if (bb + x[i].a <= b) x[i].z = 1;
    sort(x + 1, x + n + 1, cmp2);
    printf("%d\n", x[1].num);
  }
  return 0;
}
