import java.util.*;
public class Main {
static int[] result;
public static void mergeSort(int left, int right, int[] arr) {
int mid;
if (left < right) {
mid = (left + right) / 2;
mergeSort(left, mid, arr);
mergeSort(mid + 1, right, arr);
merge(left, right, mid, arr);
}
}
public static void merge(int left, int right, int mid, int[] arr) {
int l = left;
int m = mid + 1;
int k = left;
while(l <= mid || m <= right) {
if(l <= mid && m <= right) {
if(arr[l] <= arr[m]) {
result[k] = arr[l];
l++;
}
else {
result[k] = arr[m];
m++;
}
}
else if(l <= mid && m > right) {
result[k] = arr[l];
l++;
}
else {
result[k] = arr[m];
m++;
}
k++;
}
for(int i = left; i <= right; i++) {
arr[i] = result[i];
}
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
result = new int[n];
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
mergeSort(0, n-1, arr);
for(int i : arr) {
}
sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgc3RhdGljIGludFtdIHJlc3VsdDsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWVyZ2VTb3J0KGludCBsZWZ0LCBpbnQgcmlnaHQsIGludFtdIGFycikgewogICAgICAgIGludCBtaWQ7CiAgICAgICAgaWYgKGxlZnQgPCByaWdodCkgewogICAgICAgICAgICBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDI7CiAgICAgICAgICAgIG1lcmdlU29ydChsZWZ0LCBtaWQsIGFycik7CiAgICAgICAgICAgIG1lcmdlU29ydChtaWQgKyAxLCByaWdodCwgYXJyKTsKICAgICAgICAgICAgbWVyZ2UobGVmdCwgcmlnaHQsIG1pZCwgYXJyKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1lcmdlKGludCBsZWZ0LCBpbnQgcmlnaHQsIGludCBtaWQsIGludFtdIGFycikgewogICAgICAgIGludCBsID0gbGVmdDsKICAgICAgICBpbnQgbSA9IG1pZCArIDE7CiAgICAgICAgaW50IGsgPSBsZWZ0OwoKICAgICAgICB3aGlsZShsIDw9IG1pZCB8fCBtIDw9IHJpZ2h0KSB7CiAgICAgICAgICAgIGlmKGwgPD0gbWlkICYmIG0gPD0gcmlnaHQpIHsKICAgICAgICAgICAgICAgIGlmKGFycltsXSA8PSBhcnJbbV0pIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHRba10gPSBhcnJbbF07CiAgICAgICAgICAgICAgICAgICAgbCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tdID0gYXJyW21dOwogICAgICAgICAgICAgICAgICAgIG0rKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZWxzZSBpZihsIDw9IG1pZCAmJiBtID4gcmlnaHQpIHsKICAgICAgICAgICAgICAgIHJlc3VsdFtrXSA9IGFycltsXTsKICAgICAgICAgICAgICAgIGwrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJlc3VsdFtrXSA9IGFyclttXTsKICAgICAgICAgICAgICAgIG0rKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBrKys7CiAgICAgICAgfQoKICAgICAgICBmb3IoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyBpKyspIHsKICAgICAgICAgICAgYXJyW2ldID0gcmVzdWx0W2ldOwogICAgICAgIH0KCgogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBpbnQgbiA9IHNjLm5leHRJbnQoKTsKICAgICAgICByZXN1bHQgPSBuZXcgaW50W25dOwogICAgICAgIGludFtdIGFyciA9IG5ldyBpbnRbbl07CgogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgYXJyW2ldID0gc2MubmV4dEludCgpOwogICAgICAgIH0KCiAgICAgICAgbWVyZ2VTb3J0KDAsIG4tMSwgYXJyKTsKCiAgICAgICAgZm9yKGludCBpIDogYXJyKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhcnIpOwogICAgICAgIH0KCiAgICAgICAgc2MuY2xvc2UoKTsKICAgIH0KfQo=