#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

void merge(int arr[],int l,int m,int r){
    int n1=m-l+1;
    int n2=r-m;
    int left=(int)malloc(n1*sizeof(int));
    int right=(int)malloc(n2*sizeof(int));
    
    for(int i=0;i<n1;i++)
     left[i]=arr[l+i];
    for(int j=0;j<n2;j++)
     right[j]=arr[m+1+j];
     
     int i=0,j=0,k=l;
    while(i<n1&&j<n2){
        if(left[i]<=right[j])
           arr[k++]=left[i++];
        else
            arr[k++]=right[j++];
    }
    while(i<n1)
         arr[k++]=left[i++];
    while(j<n2)
         arr[k++]=right[j++];
     
     
}
void mergeSort(int arr[],int l,int r){
   if(l<r) {
       int m=l+(r-l)/2;
       
       mergeSort(arr,l,m);
       mergeSort(arr,m+1,r);
       
       merge(arr,l,m,r);
       
   }
}
int main(){
    int n;
    if(scanf("%d",&n)!=1||n<=0){
        printf("Invalid input\n");
        return 0;
    }
    int arr[n];
    bool isValid=true;
    
    for(int i=0;i<n;i++){
        int temp;
        scanf("%d",&temp);
        if(temp<0){
            isValid=false;
            break;
            
        }
        arr[i]=temp;
    }
    if(!isValid){
        printf("Invalid input\n");
        
    }else{
        mergeSort(arr,0,n-1);
        for(int i=0;i<n;i++){
            printf("%d",arr[i]);
            if(i!=n-1){
                printf(" ");
                
            }
        }
        printf("\n");
    }
    return 0;
    
}