#include<bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
#define rep(i, n) for(int i = 0; i < (n); i++)

int int_len(int n) {
  int s=0;
  while(n!=0) s++, n/=10;
  return s;
}

int int_sum(int n) {
  int m=0,s=0,a=n;
  while(a!=0) s++, a/=10;
  for(int i=s-1;i>=0;i--) m+=n/((int)pow(10,i))-(n/((int)pow(10,i+1)))*10;
  return m;
}






int ggcd(int a,int b)
{
 
  int r, tmp;
 
  
 
  /* 自然数 a > b を確認・入替 */
  if(a<b){
    tmp = a;
    a = b;
    b = tmp;
  }
 
  /* ユークリッドの互除法 */
  r = a % b;
  while(r!=0){
    a = b;
    b = r;
    r = a % b;
  }
 
 
 
  return b;
}







int fac(int n){
  int m=1;
  while(n>=1) m*=n,n--;
  return m;
}

int vec_sum(vector<int> v){
  int n=0;
  for(int i=0;i<v.size();i++) n+=v[i];
  return n;
}
///////////////////////////
int main() {
  int n,count=0,ans=0;
  cin>>n;
  vector<int> v(n);
  rep(i,n) cin>>v[i];
  rep(i,n){
    if(v[i]>count){
      count=v[i];
      ans=i;
    }
  }
  sort(v.begin(),v.end());
  if(v[v.size()-1]==v[v.size()-2]){
    rep(i,n){
      cout<<v[v.size()-1]<<endl;
    }
  }else{
    rep(i,n){
      if(i=k){
        cout<<v[v.size()-2]<<endl;
      }else{
        cout<<v[v.size()-1]<<endl;
      }
    }
  }
  
  
  
}
///////////////////////////