#include <fstream>
#include <limits.h>
#include <math.h>
#define nmax 500002
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long long int n,v[nmax],minv[nmax];
int main()
{
f>>n;
int rad=sqrt(n);
for(int i=1; i<=rad+2; ++i)
minv[i]=INT_MAX;
for(int i=1; i<=n; ++i)
{
long long int aux=(i-1)/rad+1;
f>>v[i];
if(v[i]<minv[aux])
minv[aux]=v[i];
}
for(int k=1; k<=n; ++k)
{
long long int minim=minv[1],min_int=1;
for(int i=2; i<=rad+2; ++i)
{
if(minv[i]<minim)
{
minim=minv[i];
min_int=i;
}
}
g<<minim<<' ';
int amScos=0;
long long int aux_minim=INT_MAX;
for(int i=(min_int-1)*rad+1; i<=min_int*rad; ++i)
{
if(v[i]==minim && amScos==0)
{
v[i]=INT_MAX;
amScos=1;
}
if(v[i]<aux_minim)
aux_minim=v[i];
}
minv[min_int]=aux_minim;
}
return 0;
}