#include<stdio.h>
#include<stdbool.h>

void merge(int arr[], int left,int mid,int right) {
    int n1 = mid- left + 1;
    int n2 = right - mid;
    
    int L[n1], R[n2];
    
    for(int i = 0;i < n1; i++){
     L[i] = arr[left + i];
    }
    
    for(int j = 0; j < n2; j++){
         R[j] = arr[mid + 1 + j];
    }
    
    int i = 0, j = 0, k = left;
    
    while (i < n1 && j < n2){
        if (L[i] <= R[j]) {
             arr[k++] = L[i++];
        } else {
             arr[k++] = R[j++];
        }
    }
    while(i < n1) {
         arr[k++] = L[i++];
    }
    while(j < n2) {
         arr[k++] = R[j++];
    }
}
void merge_sort(int arr[],int left,int right){
    if(left < right) {
        int mid = left + (right - left ) / 2;
        merge_sort(arr, left, mid);
        merge_sort(arr, mid + 1, right);
        
        merge(arr, left, mid, right);
    }
}
bool check_sorted(int arr[],  int n){
    for(int i=1;i<n;i++){
        if(arr[i]<arr[i = 1]){
            return false;
        }
    }
    return true;
}
int main(){
    int n;
    scanf("%d",&n);
    
    int arr[n];
    bool invalid_input = false;
    
    for(int i=0;i<n;i++){
        scanf("%d",&arr[i]);
        if(arr[i]<0){
            invalid_input = true;
        }
    }
    if(invalid_input){
        printf("Invalid input\n");
        return 0;
    }
    if (check_sorted(arr, n)) {
        printf("-1\n");
    } else {
        merge_sort(arr, 0, n - 1);
        
        for(int i = 0; i < n; i++){
            printf("%d ", arr[i]);
        }
                 printf("\n");
    }
    return 0;
}