#include<iostream>
#include<vector>
#include<list>
#include<cstdio>
using namespace std;
void radixsort(vector<int>& n,int no_of_dig=10) // no_of_dig = The no. of digits in the biggest no. in the input array..
{
int i,k,temp;
vector<pair<int,int> > m(n.size());
vector<list<pair<int,int> > > bin(10); // One bin for each of the digits [0,9]
list<pair<int,int> >::iterator it;
for(i=0; i<(int)n.size(); i++)
{
m[i].first=m[i].second=n[i];
}
while(no_of_dig--)
{
for(i=0; i<(int)m.size(); i++)
{
temp=m[i].second%10;
m[i].second/=10;
bin[temp].push_back(m[i]);
}
k=0;
for(i=0; i<(int)bin.size(); i++)
{
it=bin[i].begin();
while(it!=bin[i].end())
{
m[k++]=*(it);
it=bin[i].erase(it);
}
}
}
for(i=0; i<(int)n.size(); i++)
{
n[i]=m[i].first;
}
}
int main()
{
int i,size;
scanf("%d",&size);
vector<int> n(size);
for(i=0; i<size; i++)
{
scanf("%d",&n[i]);
}
radixsort(n,7);
for(i=0; i<size; i++)
{
printf("%d\n",n[i]);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bGlzdD4KI2luY2x1ZGU8Y3N0ZGlvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIHJhZGl4c29ydCh2ZWN0b3I8aW50PiYgbixpbnQgbm9fb2ZfZGlnPTEwKSAvLyBub19vZl9kaWcgPSBUaGUgbm8uIG9mIGRpZ2l0cyBpbiB0aGUgYmlnZ2VzdCBuby4gaW4gdGhlIGlucHV0IGFycmF5Li4KewogICAgaW50IGksayx0ZW1wOwogICAgdmVjdG9yPHBhaXI8aW50LGludD4gPiBtKG4uc2l6ZSgpKTsKICAgIHZlY3RvcjxsaXN0PHBhaXI8aW50LGludD4gPiA+IGJpbigxMCk7IC8vIE9uZSBiaW4gZm9yIGVhY2ggb2YgdGhlIGRpZ2l0cyBbMCw5XQogICAgbGlzdDxwYWlyPGludCxpbnQ+ID46Oml0ZXJhdG9yIGl0OwogICAgZm9yKGk9MDsgaTwoaW50KW4uc2l6ZSgpOyBpKyspCiAgICB7CiAgICAgICAgbVtpXS5maXJzdD1tW2ldLnNlY29uZD1uW2ldOwogICAgfQogICAgd2hpbGUobm9fb2ZfZGlnLS0pCiAgICB7CiAgICAgICAgZm9yKGk9MDsgaTwoaW50KW0uc2l6ZSgpOyBpKyspCiAgICAgICAgewogICAgICAgICAgICB0ZW1wPW1baV0uc2Vjb25kJTEwOwogICAgICAgICAgICBtW2ldLnNlY29uZC89MTA7CiAgICAgICAgICAgIGJpblt0ZW1wXS5wdXNoX2JhY2sobVtpXSk7CiAgICAgICAgfQogICAgICAgIGs9MDsKICAgICAgICBmb3IoaT0wOyBpPChpbnQpYmluLnNpemUoKTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgaXQ9YmluW2ldLmJlZ2luKCk7CiAgICAgICAgICAgIHdoaWxlKGl0IT1iaW5baV0uZW5kKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1baysrXT0qKGl0KTsKICAgICAgICAgICAgICAgIGl0PWJpbltpXS5lcmFzZShpdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaT0wOyBpPChpbnQpbi5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICBuW2ldPW1baV0uZmlyc3Q7CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgaSxzaXplOwogICAgc2NhbmYoIiVkIiwmc2l6ZSk7CiAgICB2ZWN0b3I8aW50PiBuKHNpemUpOwogICAgZm9yKGk9MDsgaTxzaXplOyBpKyspCiAgICB7CiAgICAgICAgc2NhbmYoIiVkIiwmbltpXSk7CiAgICB9CiAgICByYWRpeHNvcnQobiw3KTsKICAgIGZvcihpPTA7IGk8c2l6ZTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiJWRcbiIsbltpXSk7CiAgICB9Cn0K