#include <stdio.h>
#include <stdbool.h>
void merge(int arr[],int l,int m,int r){
    int n1=m-l+1;
    int n2=r-m;
    int L[n1],R[n2];
    for(int i=0;i<n1;i++)
      L[i] = arr[l+i];
    for(int i=0;i<n2;i++)
      R[i]=arr[m+1+i];
      int i=0;
      int j=0;
      int k=l;
      while(i<n1&&j<n2){
          arr[k++]=(L[i]<=R[j])?L[i++]:R[j++];
      }
      while(i<n1) arr[k++]=L[i++]
      while(j<n2) arr[k++]=R[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);
        mergesort(arr,l,m,r);
    }
}
int main(){
    int n;
    if(scanf("%d",&n)!=1||n<1)
    return 1;
    int prices[n];
    bool hasNegative = false;
    for(int i=0;i<n;i++){
        if(scanf("%d",&prices[i])!=1)
        return 1;
        if(prices[i]<0)hasNegative = true;
    }
    if (hasNegative){
        printf("invalid input");
        return 0;
    }
    bool isSorted = true;
    for(int i=0;i<n-1;i++){
        if(prices[i]>prices[i+1]){
            isSorted = false;
            break;
        }
    }
    if(isSorted){
        printf("-1\n");
    }else{
        mergeSort(prices,0,n-1);
        for(int i=0;i<n;i++){
            printf("%d%s",prices[i],(i==n-1)?"\n":" ");
        }
    }
    return 0;
}