import java.util.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    }
} import java.util.*; util.* java import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
    public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    }
} Main public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    } main {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    } BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); input new BufferedReader(new InputStreamReader(System.in)) String line1 = input.readLine(); line1 input.readLine() input.readLine input int N = Integer.parseInt(line1); N Integer.parseInt(line1) Integer.parseInt Integer line1 Integer[] A = new Integer[N]; A new Integer[N] N for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            A[i] = Integer.parseInt(input.readLine());
        } {
            A[i] = Integer.parseInt(input.readLine());
        } A[i] = Integer.parseInt(input.readLine()) A[i] A i Integer.parseInt(input.readLine()) Integer.parseInt Integer input.readLine() input.readLine input Integer[] B = new Integer[N]; B new Integer[N] N System.arraycopy(A,0,B,0,A.length) System.arraycopy System A 0 B 0 A.length A A.length Arrays.sort(B, Collections.reverseOrder()) Arrays.sort Arrays B Collections.reverseOrder() Collections.reverseOrder Collections for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        } {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        } if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            } A[i]==B[0] A[i] A i B[0] B 0 {
                System.out.println(B[1]);
            } System.out.println(B[1]) System.out.println System.out System System.out B[1] B 1 {
                System.out.println(B[0]);
            } System.out.println(B[0]) System.out.println System.out System System.out B[0] B 0 String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    }
} public class Main {
    public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    }
} Main
import java.util.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        // 入力受取
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String line1 = input.readLine();

        int N = Integer.parseInt(line1);
        Integer[] A = new Integer[N];
        for(int i=0;i<N;i++) {
            A[i] = Integer.parseInt(input.readLine());
        }

        Integer[] B = new Integer[N];
        System.arraycopy(A,0,B,0,A.length);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i=0;i<N;i++) {
            // 1番目に大きい数と同じなら2番めに大きい数を出力する
            if(A[i]==B[0]) {
                System.out.println(B[1]);
            } else {
                System.out.println(B[0]);
            }
        }

    }
}
