import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String nk = scan.nextLine();
int n = Integer.valueOf(nk.split(" ")[0].trim());
int k = Integer.valueOf(nk.split(" ")[1].trim());
String line = scan.nextLine();
String[] numsStr = line.split(" ");
int[] nums = new int[numsStr.length];
for (int i = 0; i < numsStr.length; i++) {
nums[i] = Integer.valueOf(numsStr[i]);
}
heapSort(nums);
for (int i = 0; i < k; i++) {
if (i == k - 1) {
System.out.print(nums[i]);
return;
}
System.out.print(nums[i] + " ");
}
}
public static void heapSort(int[] nums) {
if (null == nums || nums.length < 2) {
return;
}
for (int i = 0; i < nums.length; i++) {
heapInsert(nums, i);
}
int heapSize = nums.length;
swap(nums, 0, --heapSize);
while (heapSize > 0) {
heapify(nums, 0, heapSize);
swap(nums, 0, --heapSize);
}
}
public static void heapInsert(int[] nums, int index) {
while (nums[index] > nums[(index - 1) / 2]) {
swap(nums, index, (index - 1) / 2);
index = (index - 1) / 2;
}
}
public static void heapify(int[] nums, int index, int heapSize) {
int left = index * 2 + 1;
while (left < heapSize) {
int largest = left + 1 < heapSize && nums[left + 1] > nums[left] ? left + 1 : left;
largest = nums[largest] > nums[index] ? largest : index;
if (largest == index) {
break;
}
swap(nums, index, largest);
index = largest;
left = index * 2 + 1;
}
}
public static void swap(int[] nums, int p1, int p2) {
int tmp = nums[p1];
nums[p1] = nums[p2];
nums[p2] = tmp;
}
}