using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace abc134_c
{
    class Program
    {
        static void Main(string[] args)
        {
            
            var N = int.Parse(Console.ReadLine());
            var A = new List<int>();
            var AD = new SortedDictionary<int, List<int>>();

            for (int i = 0; i < N; i++)
            {
                int a = int.Parse(Console.ReadLine());
                A.Add(a);

                if (!AD.ContainsKey(a)) AD.Add(a, new List<int>());               
                AD[a].Add(i);
            }

            for (int i = 0; i < N; i++) 
            {
                var ai = A[i];
                var amax = AD.Keys.Last();
                var imax = AD[amax];
               
                if(ai == amax && imax.Count > 1) 
                    // 自身が最大値だが他にもいる
                    Console.WriteLine(ai);
                else if (ai == amax && imax.Count == 1)
                    // 自身が唯一の最大値→次の最大値
                    Console.WriteLine(AD.Keys.ToList()[AD.Keys.Count() - 2]);
                else 
                    Console.WriteLine(amax);
                
            }
          
        }

    }
}
