CodeforcesSep 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. 1x109) 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 (1n21050kn). The second line of the input contains n integer numbers a1,a2,,an (1ai109) — 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;
}




Comments