#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i = 0;i< (n);i++)
#define N 1000010
int MNA(vector<int> arr){
	/*正の整数配列の最大値となるときの番号を返す*/
	int max=0;
	int n=0;
	REP(i,arr.size){
		if(arr.at(i)>=max){
			max=arr.at(i);
			n=i;
		}
	}
	return n;
}

int main(){
	int n,t;
	vector<int> an(N);
	cin>>n;
	REP(i,n){
		cin>>an.at(i);
	}
	t=MNA(an);
	sort(an.begin(),an.end());
	REP(k,n){
		if(k==t){
			cout<<an.at(n-2)<<endl;
		}else{
			cout<<an.at(n-1)<<endl;
		}
	}
	return 0;
}