#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

int isNumber(const char *s){
    int i = 0;
    if (s[0] == '-' && s[1] != '\0') i = 1;
    for ( s[i] != '\0'; i++){
        if (!isdigit((unsigned char)s[i]))
        return 0;
    }
    return 1;
}
void shellsort(int arr[], int n){
    for (int gap = n/2; gap > 0; gap /= 2)
    {
        for (int i = gap; 1 < n; i++){
            int temp = arr[i];
            int j;
            for (j = i; j >= gap && arr[j - gap] < temp; j -=gap)
            arr[j] = arr[j - gap];
            arr[j] = temp;
        }
    }
}
int main()
{
    char line[256];
    int n;
    if (!fgets(line, sizeof(line), stdin) || !isNumber(line)){
        printf("Invalid input\n");
        return 0;
    }
    n = atoi(line);
    if (n < 1|| n >15){
        printf("Invalid input\n");
        return 0;
    }
    if (!fgets(line, sizeof(line), stdin))
    {
        printf("Invalid input\n");
        return 0;
    }
    int arr[15], count = 0;
    char*token = strtok(line, " \t\n");
    while (token != NULL){
        if (!isNumber(token)){
            printf("Invalid input\n");
            return 0;
        }
        int val = atoi(token);
        if (val < -1000 || val > 1000){
            printf("Invalid input\n");
            return 0;
        }
        arr[count++] = val;
        token = strtok(NULL, " \t\n");
    }
    if (count != n){
        printf("Invalid input\n");
        return 0;
    }
    shellsort(arr, n);
    for (int i = 0; i < n; i++){
        printf("%d", arr[i]);
        if (i != n - 1) printf(" ");
    }
    printf("\n");
    return 0;
}