public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int[] result = split(arr);
Arrays.stream(result).forEach(item -> System.out.print(item + " "));
}
public static int[] split(int[] arr){
int mid = arr.length / 2;
if (mid > 0){
int[] arr1 = split(Arrays.copyOfRange(arr, 0, mid));
int[] arr2 = split(Arrays.copyOfRange(arr, mid, arr.length));
return merge(arr1, arr2);
}else{
return arr;
}
}
public static int[] merge(int[] arr1, int[] arr2){
int[] arr = new int[arr1.length + arr2.length];
int index1 = 0, index2 = 0;
for(int i = 0; i < arr.length; i++){{
if (index1 >= arr1.length){
arr[i] = arr2[index2];
index2++;
continue;
}
if (index2 >= arr2.length){
arr[i] = arr1[index1];
index1++;
continue;
}
int var1 = arr1[index1];
int var2 = arr2[index2];
if (var1 < var2){
arr[i] = var1;
index1++;
}
if (var1 == var2){
arr[i] = var1;
index1++;
arr[++i] = var2;
index2++;
}
if (var1 > var2){
arr[i] = var2;
index2++;
}
}}
return arr;
}
}