import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	}

} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int n[] = new int[a]; n new int[a] a for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		} int i = 0; int i = 0; i 0 i < a i a i++ i++ i {
			n[i] = sc.nextInt();
		} {
			n[i] = sc.nextInt();
		} n[i] = sc.nextInt() n[i] n i sc.nextInt() sc.nextInt sc int max1 max1 max2; max2 if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		} n[0] >= n[1] n[0] n 0 n[1] n 1 {
			max1 = n[0];
			max2 = n[1];
		} max1 = n[0] max1 n[0] n 0 max2 = n[1] max2 n[1] n 1 {
			max1 = n[1];
			max2 = n[0];
		} max1 = n[1] max1 n[1] n 1 max2 = n[0] max2 n[0] n 0 for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		} int i = 2; int i = 2; i 2 i < a i a i++ i++ i {
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		} {
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		} if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			} max2 < n[i] max2 n[i] n i {
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			} if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				} max1 < n[i] max1 n[i] n i {
					max2 = max1;
					max1 = n[i];
				} max2 = max1 max2 max1 max1 = n[i] max1 n[i] n i {
					max2 = n[i];
				} max2 = n[i] max2 n[i] n i for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		} int i = 0; int i = 0; i 0 i < a i a i++ i++ i {
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		} {
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		} if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			} n[i] == max1 n[i] n i max1 {
				System.out.println(max2);

			} System.out.println(max2) System.out.println System.out System System.out max2 {
				System.out.println(max1);

			} System.out.println(max1) System.out.println System.out System System.out max1 String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	}

} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n[] = new int[a];
		for(int i = 0; i < a; i++){
			n[i] = sc.nextInt();
		}
		int max1,max2;
		if(n[0] >= n[1]){
			max1 = n[0];
			max2 = n[1];
		}
		else{
			max1 = n[1];
			max2 = n[0];
		}
		for(int i = 2; i < a; i++){
			if(max2 < n[i]){
				if(max1 < n[i]){
					max2 = max1;
					max1 = n[i];
				}
				else{
					max2 = n[i];
				}
			}
		}
		for(int i = 0; i < a; i++){
			if(n[i] == max1){
				System.out.println(max2);

			}
			else{
				System.out.println(max1);

			}
		}

	}

}