import java.util.*; public class Main2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); List<Integer> nums = new ArrayList<>(); while (in.hasNextInt()) { nums.add(in.nextInt()); } Integer Kth = nums.get(nums.size() - 1); nums.remove(nums.size() - 1); Integer result = obtainKthNum(nums, Kth); System.out.print(result); } private static Boolean checkBasic(Integer Kth, List<Integer> nums) { if (nums == null || nums.size() <= 0 || Kth <= 0 || Kth > nums.size()) { return false; } return true; } private static Integer obtainKthNum(List<Integer> nums, Integer Kth) { if (!checkBasic(Kth, nums)) { return Integer.MAX_VALUE; } Queue<Integer> largestK = new PriorityQueue<>(); for (Integer num : nums) { largestK.add(num); if (largestK.size() > Kth) largestK.poll(); } return largestK.poll(); } }