#include<iostream>
#include<queue>
using namespace std;

int main(){
  int n,k;
  while(scanf("%d",&n)!=EOF){
    priority_queue< int,vector<int>,greater<int> >myque;//小根堆的优先队列
    int x;
    while(n--){
      scanf("%d",&x);
      myque.push(x);
    }
    scanf("%d",&k);
    
    for(int i=1;i<k;i++){
      int m=myque.top();
      myque.pop();
      while(m==myque.top())myque.pop();//直到top与刚出队的元素不同
    }
    printf("%d\n",myque.top());
  }
  return 0;
}