#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
    long long n,gr,indeks1,indeks2,min,index;
    scanf("%lld",&n);
    int a[n],max[n];
    for(int i=0; i<n; i++)
     scanf("%d",&a[i]);
    max[n-1]=-1;
    gr = n-1;
    if(n==2)
     printf("%d %d",a[1],a[0]);
    else{
    for(int i=n-2; i>=0; i--)
     if(a[gr]>a[i]){
      max[i]=a[gr];
      index=i;
     }
     else{
      max[i]=-1;
      gr=i;
     }
    bool t;
    for(int i=0; i<n-1; i++)
     if(max[i]==-1)
      t=true;
    else{
     t=false;
     break;
    }
    if(t==true){
    int p = a[n-1];
    a[n-1] = a[n-2];
    a[n-2] = p;
    }
    else{
    for(int i=0; i<n; i++)
     if(max[i]==-1 && i>=index){
      indeks1=i;
      break;
     }
    for(int i=0; i<n; i++)
     if(max[i]!=-1){
      indeks2=i;
      break;
     }
    int p = a[indeks1];
    a[indeks1] = a[indeks2];
    a[indeks2] = p;
    }
    for(int i=0; i<n; i++)
     printf("%d ",a[i]);
    }
}