#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;
}