fun main(args: Array<String>) {
    val n = readLine()!!.toInt()
    val a = (1..n).map {
        readLine()!!.toInt()
    }
    val po1 = emptyList<Int>().toMutableList()
    val po2 = emptyList<Int>().toMutableList()
    po1.add(0)
    po2.add(0)
    for (i in 1..n) {
        po1.add(Math.max(po1[i - 1], a[i - 1]))
        po2.add(Math.max(po2[i - 1], a[n - i]))
    }
    po1.add(0)
    po2.add(0)
    po2.reverse()
    for (i in 0 until n) {
        println(Math.max(po1[i], po2[i + 2]))
    }
}
