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; 10^9] (i.e. 1 ≤ x ≤ 10^9) 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 ⋅ 10^5, 0 ≤ k ≤ n). The second line of the input contains n integer numbers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9) — the sequence itself.

Output

Print any integer number x from range [1; 10^9] 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

Note

In the first example 5 is also a valid answer because the elements with indices [1, 3, 4, 6] is less than or equal to 5 and obviously less than or equal to 6.

In the second example you cannot choose any number that only 2 elements of the given sequence will be less than or equal to this number because 3 elements of the given sequence will be also less than or equal to this number.
import java.awt.Paint;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Queue;
import java.util.Set;
import java.util.Stack;

public class CodeForces {
	
	static class Track{
		
		int start;
		int end;
		
		public Track(int start, int end) {
			super();
			this.start = start;
			this.end = end;
		}

		@Override
		public String toString() {
			return "Track [start=" + start + ", end=" + end + "]";
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + end;
			result = prime * result + start;
			return result;
		}
		
		
		
		
	}

	static class Range {

		String s;

		public Range(String s) {
			this.s = s;
		}

		@Override
		public String toString() {
			return s;
		}
	}

	static class RangeComparator implements Comparator<Range> {

		public int compare(Range o1, Range o2) {
			String[] v1 = o1.s.split("#");
			String[] v2 = o2.s.split("#");
			int val1 = Integer.parseInt(v1[1]) - Integer.parseInt(v1[0]);
			int val2 = Integer.parseInt(v2[1]) - Integer.parseInt(v2[0]);
			if (val1 > val2) {
				return -1;
			} else if (val2 > val1) {
				return 1;
			}
			return o1.s.compareTo(o2.s);
		}

	}

	public static void printArray(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}

	public static int[] getIntArray(BufferedReader br) throws IOException {
		String line = br.readLine();
		String[] values = line.split(" ");
		int[] arr = new int[values.length];
		for (int i = 0; i < values.length; i++) {
			arr[i] = Integer.parseInt(values[i]);
		}
		return arr;
	}

	public static long[] getLongArray(BufferedReader br) throws IOException {
		String line = br.readLine();
		String[] values = line.split(" ");
		long[] arr = new long[values.length];
		for (int i = 0; i < values.length; i++) {
			arr[i] = Long.parseLong(values[i]);
		}
		return arr;
	}
	
	public static List<Long> getLongList(BufferedReader br) throws IOException {
		String line = br.readLine();
		String[] values = line.split(" ");
		List<Long> list = new ArrayList<>();
		for (int i = 0; i < values.length; i++) {
			list.add(Long.parseLong(values[i]));
		}
		return list;
	}
	
	public static String[] getStringArray(BufferedReader br) throws IOException {
		String line = br.readLine();
		String[] values = line.split(" ");
		return values;
	}

	public static Set<Integer> getFactors(int n) {
		Set<Integer> set = new HashSet<>();
		for (int i = 2; i <= Math.sqrt(n); i++) {
			if (n % i == 0) {
				set.add(i);
				set.add(n / i);
			}
		}
		return set;
	}

	public static int[] decode(String s) {
		String[] v = s.split("#");
		int[] arr = new int[2];
		arr[0] = Integer.parseInt(v[0]);
		arr[1] = Integer.parseInt(v[1]);
		return arr;
	}

	public static String encode(int a, int b) {
		return a + "#" + b;
	}

	public static long lcm(long a, long b) {
		BigInteger bigGCD = BigInteger.valueOf(a).gcd(BigInteger.valueOf(b));
		long val = bigGCD.longValue();
		long prod = a * b;
		return prod / val;
	}

	public static Set<Integer> getPrimes() {
		Set<Integer> primes = new HashSet<>();
		for (int i = 2; i < 20000; i++) {
			int fac = 0;
			for (int j = 1; j <= Math.sqrt(i); j++) {
				if (i % j == 0) {
					fac += 2;
				}
			}

			if (fac == 2) {
				primes.add(i);
			}
		}

		System.out.println(primes.size());

		return primes;
	}
	

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//		String line = br.readLine();
//		int t = Integer.parseInt(line);		
		int t = 1;

		while (t-- > 0) {
//			String line = br.readLine();
//			int n = Integer.parseInt(line);
			int[] arr = getIntArray(br);
			int k = arr[1];
			List<Long> list = getLongList(br);
			
			Collections.sort(list);
			
			if(k==0){
				if(list.get(0)==1){
					System.out.println("-1");
				}else{
					System.out.println(list.get(0)-1);
				}
			}else if(k==arr[0]){
				System.out.println(list.get(k-1));
			}else{
				if((long)list.get(k)!=(long)list.get(k-1)){
					System.out.println(list.get(k-1));
				}else{
					System.out.println("-1");
				}
			}
			
			
			

			
		}

	}
	

}


