#include<stdio.h>
void merge(int arr[], int left, int mid, int right){
    int i=left,j=mid+1,k=0;
    int temp[right-left+1];
    while(i<=mid&&j<=right){
        if(arr[i]<=arr[j])
          temp[k++]=arr[i++];
        else
          temp[k++]=arr[j++];
    }
    while(i<=mid)
     temp[k++]=arr[i++];
     while(j<=right)
     temp[k++]=arr[j++];
     
     for(i=left,k=0;i<=right;i++,k++)
       arr[i]=temp[k];
}
void mergeSort(int arr[],int left,int right){
    if(left<right){
        int mid=(left+right)/2;
        mergeSort(arr,left,mid);
        mergeSort(arr,mid+1,right);
        merge(arr,left,mid,right);
          
        
    }
}
int isSorted(int arr[],int n){
    for(int i=0;i<n-1;i++)
     if(arr[i]>arr[i+1])
       return 1;
}
int main(){
    int n;
    scanf("%d",&n);
    if(n<1||n>100){
        printf("Invalid Input");
        return 0;
    }
}
if(isSorted(arr,n)){
    printf("List is already sorted");
    return 0;
}

mergeSort(arr,0);

for(int i=0;i<n;i++){
    printf("%d",arr[i]);
    if(i<n-1) 
    printf(" ");
}
return 0;
}