import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
}
} import java.util.*; util.* java public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
}
} Main public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
} main {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int N = scanner.nextInt(); N scanner.nextInt() scanner.nextInt scanner ArrayList <Integer> a = new ArrayList <Integer>(); a new ArrayList <Integer>() int n[] = new int[N]; n new int[N] N for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      } int i=0; int i=0; i 0 i<N i N i++ i++ i {
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      } {
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      } n[i] =scanner.nextInt() n[i] n i scanner.nextInt() scanner.nextInt scanner a.add(n[i]) a.add a n[i] n i Collections.sort(a) Collections.sort Collections a for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      } int i=0; int i=0; i 0 i<N i N i++ i++ i {
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      } {
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      } int max = a.get(a.size()-1); max a.get(a.size()-1) a.get a a.size()-1 a.size() a.size a 1 int max2 = a.get(a.size()-2); max2 a.get(a.size()-2) a.get a a.size()-2 a.size() a.size a 2 if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      } max==n[i] max n[i] n i {//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        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 public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
}
} public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
}
} Main
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
      int N = scanner.nextInt();
       
      ArrayList <Integer> a = new ArrayList <Integer>();
 	  int n[] = new int[N];
      for(int i=0; i<N; i++){
         n[i] =scanner.nextInt();
      	 a.add(n[i]);//[1.4.3]の入力が入る
      }
  
      Collections.sort(a);
  
  	  for(int i=0; i<N; i++){
         int max = a.get(a.size()-1);//aの最大値
         int max2 = a.get(a.size()-2);//aの二番目に大きい数値
      if(max==n[i]){//最大値がn[i]番目の数値と同じならば,出力は二番目に大きい数値を表す
                    //[1,3,4]でmax[4]とn[i]==n[2]...(4)が同じならば,[1,3]を比較してmax2==3を出力している
        System.out.println(max2);
      }
      else{
        System.out.println(max);
      }
      }
}
}