#include <bits/stdc++.h>

using namespace std;
void stampaj(long long a[], long long n)
{
    for(long long i=0;i<n;i++)
    {
        printf("%lld ",a[i]);
    }
}
int main()
{
    long long n;
    bool promenio=false;
    scanf("%lld",&n);
    long long i,pom;
    long long a[n],b[n];
    for(i=0;i<n;i++)
    {
        scanf("%lld",&a[i]);
        b[i]=a[i];
    }
    if(n==2) {swap(a[0],a[1]); stampaj(a,n); return 0;}
    else
    {
      sort(b,b+n,greater<int>());
      for(i=0;i<n;i++)
      {
          if(a[i]!=b[i])
          {
              promenio=true;
              vector<int> v(a,a+n);
              vector<int>::iterator low;
              low=upper_bound (v.begin(), v.end(), b[i]);
              long long pozicija=low-v.begin()-1;
              long long pom;
              pom=a[i];
              a[i]=a[pozicija];
              a[pozicija]=pom;
              break;
          }
      }
    }
      if(promenio==false) swap(a[n-1],a[n-2]);
      stampaj(a,n);
    return 0;
}