import java.util.*;

 class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        int MAX = 0;
        int MAX2 = 0;
        
        for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        }
        	
        for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        }

      	for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        }
        
    }
} import java.util.*; util.* java class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        int MAX = 0;
        int MAX2 = 0;
        
        for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        }
        	
        for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        }

      	for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        }
        
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        int MAX = 0;
        int MAX2 = 0;
        
        for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        }
        	
        for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        }

      	for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        }
        
    } main {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        int MAX = 0;
        int MAX2 = 0;
        
        for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        }
        	
        for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        }

      	for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        }
        
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] A = new int[N]; A new int[N] N int MAX = 0; MAX 0 int MAX2 = 0; MAX2 0 for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        } int i = 0; int i = 0; i 0 i<N i N i++ i++ i {
        	A[i] = sc.nextInt();
        } {
        	A[i] = sc.nextInt();
        } A[i] = sc.nextInt() A[i] A i sc.nextInt() sc.nextInt sc for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        } int i = 0; int i = 0; i 0 i<N i N i++ i++ i {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        } {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        } if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	} A[i]>=MAX A[i] A i MAX {
        		MAX2 = MAX;
        		MAX = A[i];
        	} MAX2 = MAX MAX2 MAX MAX = A[i] MAX A[i] A i if(A[i]>MAX2) {
        		MAX2 = A[i];
        	} A[i]>MAX2 A[i] A i MAX2 {
        		MAX2 = A[i];
        	} MAX2 = A[i] MAX2 A[i] A i for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        } int i = 0; int i = 0; i 0 i<N i N i++ i++ i {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        } {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        } if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	} A[i]==MAX A[i] A i MAX {
       			System.out.println(MAX2);
        	} System.out.println(MAX2) System.out.println System.out System System.out MAX2 {
        		System.out.println(MAX);
        	} System.out.println(MAX) System.out.println System.out System System.out MAX String[] args args
import java.util.*;

 class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        int MAX = 0;
        int MAX2 = 0;
        
        for(int i = 0; i<N; i++) {
        	A[i] = sc.nextInt();
        }
        	
        for(int i = 0; i<N; i++) {
        	if(A[i]>=MAX) {
        		MAX2 = MAX;
        		MAX = A[i];
        	} else if(A[i]>MAX2) {
        		MAX2 = A[i];
        	}
        }

      	for(int i = 0; i<N; i++) {
       		if(A[i]==MAX) {
       			System.out.println(MAX2);
        	} else {
        		System.out.println(MAX);
        	}
        	
        }
        
    }
}