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

int a[MAXN],mx[MAXN];
vector<int> v[10];

int main()
{ int n,cnt=0,eq=0,i;
scanf("%d",&n);

for(i=0;i<n;i++)
{
    scanf("%d",&a[i]);

    v[ a[i] ].push_back(i);
}

mx[n-1]=a[n-1];

for(i=n-2;i>=0;i--)
{
    mx[i]=max(a[i],mx[i+1]);

    if(v[ a[i] ].size()>=2) eq++;
}

for(i=0;i<n-1;i++)
{
    if(a[i]<mx[i+1])
    {
        cnt++;

        int tmp=v[ mx[i+1] ].size()-1;

        swap(a[i],a[ v[ mx[i+1] ][tmp] ]);

        break;
    }
}

if(cnt==0 && eq==0) swap(a[n-2],a[n-1]);

for(int i=0;i<n;i++) printf("%d ",a[i]);

    return 0;
}