Codeforces•Sep 20, 2025
Less or Equal
Hazrat Ali
Codeforces
You are given a sequence of integers of length n and integer number k. You should print any integer number x in the range of [1;109] (i.e. 1≤x≤109) such that exactly k elements of given sequence are less than or equal to x.
Note that the sequence can contain equal elements.
If there is no such x, print "-1" (without quotes).
Input
The first line of the input contains integer numbers n and k (1≤n≤2⋅105, 0≤k≤n). The second line of the input contains n integer numbers a1,a2,…,an (1≤ai≤109) — the sequence itself.
Output
Print any integer number x from range [1;109] such that exactly k elements of given sequence is less or equal to x.
If there is no such x, print "-1" (without quotes).
Examples
Input
7 4
3 7 5 1 10 3 20
Output
6
Input
7 2
3 7 5 1 10 3 20
Output
-1
Solution
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end());
if (k == 0) {
if (a[0] > 1) {
cout << a[0] - 1 << endl;
} else {
cout << -1 << endl;
}
} else if (k == n) {
cout << a[n - 1] << endl;
} else {
if (a[k - 1] == a[k]) {
cout << -1 << endl;
} else {
cout << a[k - 1] << endl;
}
}
return 0;
}