#include<iostream>
using namespace std;
template <typename typ>
class stack{
typ *tab;
long wybrany, size_in;
void powiekszSie();
public:
stack();
~stack(){delete []tab;}
int size() {return wybrany;}
void push(const typ &co);
void pop() {wybrany --;}
bool empty() {return wybrany == 0;}
const typ top(){return tab[wybrany - 1];}
};
template <typename typ>
stack<typ>::stack(){
wybrany = 0;
size_in = 0;
tab = new typ[size_in];
}
template <typename typ>
void stack<typ>::push(const typ &co){
if(wybrany == size_in)
powiekszSie();
tab[wybrany++] = co;
}
template <typename typ>
void stack<typ>::powiekszSie(){
typ *nowa = new typ[size_in + 10];
for(int i=0;i<size_in;++i)
nowa[i] = tab[i];
delete []tab;
tab = nowa;
size_in += 10;
}
void func(int *a, int n){
stack <int> S, P;
for(int i=0; i<n; i++) S.push(a[i]);
for(int i=0, k=0, min; i<n; i++, k++){
min = S.top();
S.pop();
while(k!=S.size()){
if(min > S.top()){
P.push(min);
min = S.top();
}
else
P.push(S.top());
S.pop();
}
for(S.push(min); !P.empty(); P.pop()){ int x=P.top(); S.push(x);}
}
while (!S.empty()){
cout<<S.top()<<" ";
S.pop();
}
}
int main(){
int n, *a;
cin>>n;
a = new int[n];
for(int i=0, j; i<n; i++)
cin>>a[i];
func(a, n);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgdHlwPgpjbGFzcyBzdGFja3sKICAgICAgICB0eXAgKnRhYjsgICAgICAgICAgCiAgICAgICAgbG9uZyB3eWJyYW55LCBzaXplX2luOwogICAgICAgIHZvaWQgcG93aWVrc3pTaWUoKTsKcHVibGljOgogICAgICAgIHN0YWNrKCk7ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIH5zdGFjaygpe2RlbGV0ZSBbXXRhYjt9ICAKICAgICAgICBpbnQgc2l6ZSgpIHtyZXR1cm4gd3licmFueTt9ICAgICAgICAgCiAgICAgICAgdm9pZCBwdXNoKGNvbnN0IHR5cCAmY28pOyAgIAogICAgICAgIHZvaWQgcG9wKCkge3d5YnJhbnkgLS07fSAgCiAgICAgICAgYm9vbCBlbXB0eSgpIHtyZXR1cm4gd3licmFueSA9PSAwO30KICAgICAgICBjb25zdCB0eXAgdG9wKCl7cmV0dXJuIHRhYlt3eWJyYW55IC0gMV07fSAgICAgCn07CnRlbXBsYXRlIDx0eXBlbmFtZSB0eXA+CnN0YWNrPHR5cD46OnN0YWNrKCl7IAogICAgICAgIHd5YnJhbnkgPSAwOwogICAgICAgIHNpemVfaW4gPSAwOyAgICAgICAgICAKICAgICAgICB0YWIgPSBuZXcgdHlwW3NpemVfaW5dOyAgICAgICAgICAgICAgIAp9CnRlbXBsYXRlIDx0eXBlbmFtZSB0eXA+CnZvaWQgc3RhY2s8dHlwPjo6cHVzaChjb25zdCB0eXAgJmNvKXsKICAgICAgICBpZih3eWJyYW55ID09IHNpemVfaW4pCiAgICAgICAgICAgICAgICBwb3dpZWtzelNpZSgpOyAgICAgICAKICAgICAgICB0YWJbd3licmFueSsrXSA9IGNvOyAgICAgIAp9CnRlbXBsYXRlIDx0eXBlbmFtZSB0eXA+CnZvaWQgc3RhY2s8dHlwPjo6cG93aWVrc3pTaWUoKXsKICAgICAgICB0eXAgKm5vd2EgPSBuZXcgdHlwW3NpemVfaW4gKyAxMF07ICAgICAgIAogICAgICAgIGZvcihpbnQgaT0wO2k8c2l6ZV9pbjsrK2kpCiAgICAgICAgICAgICAgICBub3dhW2ldID0gdGFiW2ldOwogICAgICAgIGRlbGV0ZSBbXXRhYjsgICAgICAKICAgICAgICB0YWIgPSBub3dhOyAgICAgICAgIAogICAgICAgIHNpemVfaW4gKz0gMTA7ICAgICAgICAKfQoKdm9pZCBmdW5jKGludCAqYSwgaW50IG4pewogIHN0YWNrIDxpbnQ+IFMsIFA7CiAgZm9yKGludCBpPTA7IGk8bjsgaSsrKSBTLnB1c2goYVtpXSk7IAogICAgICAgICAgCiAgZm9yKGludCBpPTAsIGs9MCwgbWluOyBpPG47IGkrKywgaysrKXsgICAgICAgIAogICAgbWluID0gUy50b3AoKTsKICAgIFMucG9wKCk7CiAgICB3aGlsZShrIT1TLnNpemUoKSl7ICAKICAgICAgIGlmKG1pbiA+IFMudG9wKCkpeyAKICAgICAgICAgICAgICAgUC5wdXNoKG1pbik7CiAgICAgICAgICAgICAgIG1pbiA9IFMudG9wKCk7CiAgICAgICB9CiAgICAgICBlbHNlCiAgICAgICAgICAgICBQLnB1c2goUy50b3AoKSk7CiAgICAgICBTLnBvcCgpOwogICAgfSAgCiAgICBmb3IoUy5wdXNoKG1pbik7ICFQLmVtcHR5KCk7IFAucG9wKCkpeyBpbnQgeD1QLnRvcCgpOyBTLnB1c2goeCk7fQogIH0gIAogICAgd2hpbGUgKCFTLmVtcHR5KCkpewogICAgICAgICAgY291dDw8Uy50b3AoKTw8IiAiOwogICAgICAgICAgUy5wb3AoKTsKICB9ICAgICAKfQoKaW50IG1haW4oKXsKICAgIGludCBuLCAqYTsKICAgIGNpbj4+bjsgCiAgICBhID0gbmV3IGludFtuXTsKICAgIGZvcihpbnQgaT0wLCBqOyBpPG47IGkrKykKICAgICAgICAgICAgY2luPj5hW2ldOwogICAgZnVuYyhhLCBuKTsKICAgIHJldHVybiAwOwp9CiAgICAK