class Solution {
public:
vector<int> num;
int res;
void find(int l, int r, int k) {
int pivot = num[l];
int rr = r;
int ll = l;
while (l < r) {
while (l<r && num[r]>=pivot) {
r--;
}
num[l] = num[r];
while (l < r && num[l] <= pivot) {
l++;
}
num[r] = num[l];
}
num[l] = pivot;
if (l == k) {
if (res == -1) res = num[l];
return;
}
else if (l < k) {
find(l+1, rr, k);
}
else {
find(ll, l-1, k);
}
}
int findKth(vector<int> a, int n, int K) {
// write code here
res = -1;
a.insert(a.begin(), 1, 0);
num=a;
find(1, n, n-K+1);
cout << res;
return res;
}
};