import java.io.*; public class Main { private static int n; private static final int MAX = 501; private static int[] arr = new int[MAX]; private static int[] help = new int[MAX]; public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StreamTokenizer in = new StreamTokenizer(bufferedReader); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); while (in.nextToken() != StreamTokenizer.TT_EOF) { n = (int) in.nval; for (int i = 0; i < n; i++) { in.nextToken(); arr[i] = (int) in.nval; } mergeSort(0, n - 1); for (int i = 0; i < n; i++) { out.print(arr[i] + " "); } out.println(); } out.flush(); out.close(); } public static void mergeSort(int l, int r) { if (l == r) { return; } int mid = (l + r) / 2; mergeSort(l, mid); mergeSort(mid + 1, r); merge(l, mid, r); } public static void merge(int l, int mid, int r) { int a = l, b = mid + 1; int i = l; while (a <= mid && b <= r) { help[i++] = arr[a] < arr[b] ? arr[a++] : arr[b++]; } while (a <= mid) { help[i++] = arr[a++]; } while (b <= r) { help[i++] = arr[b++]; } for (int j = l; j <= r; j++) { arr[j] = help[j]; } } }