n = int(eval(input()))

A = [int(eval(input())) for _ in range(n)]

max_id = A.index(max(A))

A = sorted(A, reverse=True)

for i in range(n):

    if i == max_id:

        # 最大値が取り除かれるので2番目に大きい数値を出力

        print((A[1]))

    else:

        # 最大値が残っているので，最大値を出力

        print((A[0]))
n = int(eval(input()))

A = [int(eval(input())) for _ in range(n)]

maxA = max(A)

maxIdx = A.index(maxA)

for i in range(n):

  if i != maxIdx:

    print(maxA)

  else:

    print((max(A[:i] + A[i + 1:])))
n = int(eval(input()))
A = [int(eval(input())) for _ in range(n)]
max_id = A.index(max(A))
A = sorted(A, reverse=True)
for i in range(n):
    if i == max_id:
        # 最大値が取り除かれるので2番目に大きい数値を出力
        print((A[1]))
    else:
        # 最大値が残っているので，最大値を出力
        print((A[0]))

n = int(eval(input()))
A = [int(eval(input())) for _ in range(n)]
maxA = max(A)
maxIdx = A.index(maxA)
for i in range(n):
    if i != maxIdx:
        print(maxA)
    else:
        print((max(A[:i] + A[i + 1 :])))

-max_id = A.index(max(A)) -A = sorted(A, reverse=True) +maxA = max(A) +maxIdx = A.index(maxA) -    if i == max_id: -        # 最大値が取り除かれるので2番目に大きい数値を出力 -        print((A[1])) +    if i != maxIdx: +        print(maxA) -        # 最大値が残っているので，最大値を出力 -        print((A[0])) +        print((max(A[:i] + A[i + 1 :])))