#include <iostream>
#include <vector>

using namespace std;

class heap{
private:
    vector<int> v;
    int pred(int n){return (n-1)/2;};
    int next(int n){return (v[n*2+1]>v[n*2+2])?n*2+1:n*2+2;};
    int del(){
        int ans=v[0];
        v[0]=0;
        int m=0;
        int n=next(m);
        while(v[m]<v[n]&&n<=v.size()){
            swap(v[m],v[n]);
            m=n;
            n=next(m);
        };
        v.resize(v.size()-1);
        return ans;
    }
public:
    void add(int n){
        v.push_back(n);
        int m=v.size()-1;
        int p=pred(m);
        while((v[m]>v[p])&&(m>0)){
            swap(v[m],v[p]);
            m=p;
            p=pred(m);
        };
    };
    void sort(vector<int>& w){
        while(v.size())w.push_back(del());
    };
};

int main()
{
    int n,m;
    heap h;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>m;
        h.add(m);
        };
    vector<int> v;
    h.sort(v);
    for(int i=0;i<n;i++)cout<<v[i]<<' ';
    return 0;
}
