#include <bits/stdc++.h>
#include <math.h>
#define _GLIBCXX_DEBUG
using namespace std;
int main() {
  
  int N;
  cin>>N;
  
  vector<int> vec(N);
  for(int i=0;i<N;i++){
    cin>>vec[i];
  }
  
  vector<int> X(N);
  for(int i=0;i<N;i++){
    X[i]=vec[i];
  }
  sort(X.begin(),X.end());
  
  set<int> S;
  for(int i=0;i<N;i++){
    S.insert(vec[i]);
  }
  
  
  for(int i=0;i<N;i++){
    if(vec[i]!=*rbegin(S)){
      cout<<*rbegin(S)<<endl;
    }
    else if(vec[i]==*rbegin(S)){
      S.erase(*rbegin(S));
      cout<<*rbegin(S)<<endl;
      S.insert(X[N-1]);
    }
  }
}