#include <cstdio>
#include <cmath>
#include <cstring>
#include <iomanip>
#include <vector>
#include <stack>
#include <bitset>
#include <map>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int n,a[1000005],elmnt[5];
vector <int> v[15];
bool bul;
void zamena(){
    int brojac=1;
    for(int i=0;i<=9;i++){
        for(int k=0;k<v[i].size();k++){
            elmnt[brojac]=v[i][k];
            brojac++;
            if(brojac==3)break;
        }

    }
    swap(a[elmnt[1]],a[elmnt[2]]);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
    scanf("%d",&a[i]);
    v[(a[i])].push_back(i);
}
for(int i=1;i<=n;i++){
    for(int k=9;k>a[i];k--){
            for(int q=v[k].size()-1;q>=0;q--){
                if(v[k][q]<=i)continue;
                else {
                    swap(a[i],a[(v[k][q])]);
                    bul=true;
                    for(int i=1;i<=n;i++)printf("%d ",a[i]);
                    return 0;
                }
            }
    }
}
if(!bul)zamena();
for(int i=1;i<=n;i++)printf("%d ",a[i]);


return 0;
}