import sys
import random

def partition(arr, l, r):
    x = arr[r]
    i = l
    for j in range(l, r):
        if arr[j] <= x:
            arr[i], arr[j] = arr[j], arr[i]
            i += 1
    arr[i], arr[r] = arr[r], arr[i]
    return i

def kthSmallest(arr, l, r, k):
    if k > 0 and k <= r - l + 1:
        index = partition(arr, l, r)
        
        if index - l == k - 1:
            return arr[index]
        
        if index - l > k - 1:
            return kthSmallest(arr, l, index - 1, k)
            
        return kthSmallest(arr, index + 1, r, k - index + l - 1)
    return float('inf')

def solve():
    input_str = sys.stdin.read()
    
    nums = []
    current_num = ""
    for char in input_str:
        if char.isdigit() or char == '-':
            current_num += char
        elif current_num:
            nums.append(int(current_num))
            current_num = ""
    if current_num:
        nums.append(int(current_num))
        
    if not nums:
        return

    # Last number in the input is k, rest is array
    k = nums.pop()
    arr = nums
    
    # Kth largest is (N - K + 1)th smallest
    n = len(arr)
    target = n - k + 1
    
    result = kthSmallest(arr, 0, n - 1, target)
    print(result)

if __name__ == "__main__":
    solve()

# Sample Test Case
# ----------------
# Input:
# Array = {7, 5, 3, 1, 12, -16, 4, -2} k = 3
#
# Output:
# 5