#include<iostream> #include<queue> #include<unordered_set> using namespace std; int main() { priority_queue<int, vector<int>, less<int>>q; unordered_set<int>data_set; int N; scanf("%d", &N); vector<int>data_list; while (N--) { int data; scanf("%d", &data); data_list.push_back(data); } int K; scanf("%d", &K); for (int i = 0; i < data_list.size(); i++) { int data = data_list[i]; if (data_set.find(data) == data_set.end()) { data_set.insert(data); q.push(data); } if (q.size() > K) { q.pop(); } } int data = q.top(); cout << data; }