#include <bits/stdc++.h>
#include <vector>

using namespace std;

int main()
{
    int n,d=0,br=0,t=0,g=0,br1=0,u=0;
    cin >> n;
    vector<int> v;
    int a[n];
    for (int k=0;k<n;k++)
    {
        scanf("%d",&a[k]);
        v.push_back(a[k]);
        if (a[k]==0) br++;
    }
    if (n>2)
   {
        sort(v.begin(), v.end(), greater<int>());
        for (int o=0;o<n;o++)
        {
            if (a[o]==v[o])
            {
                br1+=1;
            }
        }
        if (br1==v.size())
        {
            u=a[n-1];
            a[n-1]=a[n-2];
            a[n-2]=u;
            for (int e=0;e<n;e++)
            {
                printf("%d ",a[e]);

            }
            return 0;
        }
        int i=n;
        for (int j=0;j<n;j++)
       {
           if (a[j]<v[j])
           {
               while (i!=0)
               {
                   if (a[i]==v[j])
                   {
                     t=i;
                   break;
                   }
                   i--;

               }
            g=a[j];
           a[j]=v[j];
           a[t]=g;
            for (int l=0;l<n;l++)
            {
             printf("%d ",a[l]);
            }
            return 0;

           }
       }

    }

    else if (n==2)
    {
        d=a[0];
        a[0]=a[1];
        a[1]=d;
            for (int l=0;l<n;l++)
    {
        printf("%d ",a[l]);
    }
    }

    return 0;
}