#include #include #include #include #include #include using namespace std; typedef pair pii; int main(){ const int INF = 1010101010; int n; scanf("%d", &n); vector v(n + 1); for(int i = 0; i < n; ++i){ int x; scanf("%d", &x); v[i] = pii(-x, i); } v[n] = pii(INF, INF); sort(v.begin(), v.end()); vector b(n); set st; for(int i = 0; i < n; ++i){ st.insert(i); } st.insert(INF); for(int i = 0; i < n; ){ int j; int val = -v[i].first; for(j = i + 1; v[j].first == -val; ++j); int l = v[i].second, r = v[j - 1].second; for(auto it = st.lower_bound(l); *it <= r; ){ b[*it] = val; it = st.erase(it); } i = j; } for(int i = 0; i < n; ++i){ printf("%d%c", b[i], i + 1 == n ? '\n' : ' '); } }