#include <bits/stdc++.h>
using namespace std;

bool poj[10]={0},pon=false;
int main(){
   int n;
   vector<int>niz1;
   vector<int>niz2;
   scanf("%d",&n);
   for(int i=0;i<n;i++){
    int x;

    scanf("%d",&x);
    if(poj[x])pon=true;
    poj[x]=true;
    niz1.push_back(x);
    niz2.push_back(x);
   }
   sort(niz2.begin(),niz2.end());
   int k=n-1;
   bool nadjeno=false;
   for(int i=0;i<n;i++){
       //cout<<niz1[i]<<" "<<niz2[k]<<endl;
    if(niz1[i]<niz2[k]){
            //cout<<"aa";
            nadjeno=true;
        for(int j=n-1;j>=i+1;j--){

         //cout<<niz1[j]<<" "<<niz2[k]<<endl;
            if(niz1[j]==niz2[k]){

               int a=niz1[j];
               niz1[j]=niz1[i];
               niz1[i]=a;
               break;
            }

        }
        break;
    }else if(niz1[i]==niz2[k])k--;
   }
   if(!nadjeno && !pon){
    swap(niz1[n-1],niz1[n-2]);
   }
   for(int i=0;i<n;i++)printf("%d ",niz1[i]);
    return 0;
}