#include <iostream>
using namespace std;

int cifre[1000005];

void razresi(int l,int d)
{
    if(d-l==2)
    {
        cifre[l]=cifre[l]^cifre[l+1];
        cifre[l+1]=cifre[l]^cifre[l+1];
        cifre[l]=cifre[l]^cifre[l+1];
    }
    else
    {
        int maxIndex = l;
        for(int i=l+1;i<d;i++)
        {
            if(cifre[i]>=cifre[maxIndex])maxIndex=i;
        }
        if(maxIndex==l)razresi(l+1,d);
        else if(maxIndex!=d-1 && cifre[maxIndex]==cifre[l])
        {
            bool povezani=true;
            int nepovezano=l;
            for(int j=l+1;j<maxIndex&&povezani;j++)
            {
                if(cifre[j]!=cifre[l])
                {
                    nepovezano=j;
                    povezani=false;
                }
            }
            if(povezani)
            {
                bool trebaLiDalje=false;
                for(int i=maxIndex+2&&!trebaLiDalje;i<d;i++)
                {
                    if(cifre[i]>cifre[i-1])trebaLiDalje=true;
                }
                if(trebaLiDalje)razresi(maxIndex+1,d);
            }
            else
            {
                cifre[maxIndex]=cifre[maxIndex]^cifre[nepovezano];
                cifre[nepovezano]=cifre[maxIndex]^cifre[nepovezano];
                cifre[maxIndex]=cifre[maxIndex]^cifre[nepovezano];
            }
        }
        else
        {
            cifre[maxIndex]=cifre[maxIndex]^cifre[l];
            cifre[l]=cifre[maxIndex]^cifre[l];
            cifre[maxIndex]=cifre[maxIndex]^cifre[l];
        }
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cerr.tie(0);
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>cifre[i];
    }
    razresi(0,n);
    for(int i=0;i<n;i++)
    {
        cout<<cifre[i]<<" ";
    }
}