#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+7;
int n, a[N], prefix_min[N], suffix_max[N];
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
prefix_min[1] = a[1];
for(int i = 2; i <= n; i++){
prefix_min[i] = min(prefix_min[i-1], a[i]);
} // prefix min
// Tương tự cho prefix max
suffix_max[n] = a[n];
for(int i = n-1; i >= 1; i--){
suffix_max[i] = max(suffix_max[i+1], a[i]);
} // max hậu tố (suffix max)
// tương tự cho suffix min
for(int i = 1; i <= n; i++){
cout << suffix_max[i] << ' ';
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDFlNis3OwoKaW50IG4sIGFbTl0sIHByZWZpeF9taW5bTl0sIHN1ZmZpeF9tYXhbTl07CgppbnQgbWFpbigpewogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CiAgICBwcmVmaXhfbWluWzFdID0gYVsxXTsKICAgIGZvcihpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKXsKICAgICAgICBwcmVmaXhfbWluW2ldID0gbWluKHByZWZpeF9taW5baS0xXSwgYVtpXSk7CiAgICB9IC8vIHByZWZpeCBtaW4KICAgIC8vIFTGsMahbmcgdOG7sSBjaG8gcHJlZml4IG1heAogICAgc3VmZml4X21heFtuXSA9IGFbbl07CiAgICBmb3IoaW50IGkgPSBuLTE7IGkgPj0gMTsgaS0tKXsKICAgICAgICBzdWZmaXhfbWF4W2ldID0gbWF4KHN1ZmZpeF9tYXhbaSsxXSwgYVtpXSk7CiAgICB9IC8vIG1heCBo4bqtdSB04buRIChzdWZmaXggbWF4KQogICAgLy8gdMawxqFuZyB04buxIGNobyBzdWZmaXggbWluCgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGNvdXQgPDwgc3VmZml4X21heFtpXSA8PCAnICc7CiAgICB9Cn0K