#include<iostream>
#include<fstream>
#define nmax 500000
using namespace std;
int n,a,b,c,v[nmax],i,j,k,m;
int j0,j1,j2,j3,j4,j5,j6,j7,j8,j9;
int w0[nmax],w1[nmax],w2[nmax],w3[nmax],w4[nmax];
int w5[nmax],w6[nmax],w7[nmax],w8[nmax],w9[nmax];
void inapoi()
{
i=0;
for(j=1;j<=j0;j++) {i++; v[i]=w0[j]; }
for(j=1;j<=j1;j++) {i++; v[i]=w1[j]; }
for(j=1;j<=j2;j++) {i++; v[i]=w2[j]; }
for(j=1;j<=j3;j++) {i++; v[i]=w3[j]; }
for(j=1;j<=j4;j++) {i++; v[i]=w4[j]; }
for(j=1;j<=j5;j++) {i++; v[i]=w5[j]; }
for(j=1;j<=j6;j++) {i++; v[i]=w6[j]; }
for(j=1;j<=j7;j++) {i++; v[i]=w7[j]; }
for(j=1;j<=j8;j++) {i++; v[i]=w8[j]; }
for(j=1;j<=j9;j++) {i++; v[i]=w9[j]; }
}
void reinitializeaza()
{
j0=0;
j1=0;
j2=0;
j3=0;
j4=0;
j5=0;
j6=0;
j7=0;
j8=0;
j9=0;
}
int cifra(int g,int p)
{int o=1;
while(o<p)
{g=g/10; o++;}
return g%10;
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++) f>>v[i];
m=0;
while(c!=0) {m++;c/=10;}
k=2;
reinitializeaza();
{for(i=1;i<=n;i++)
if(v[i]%10==0) {j0++; w0[j0]=v[i]; }
else if(v[i]%10==1) {j1++; w1[j1]=v[i]; }
else if(v[i]%10==2) {j2++; w2[j2]=v[i]; }
else if(v[i]%10==3) {j3++; w3[j3]=v[i]; }
else if(v[i]%10==4) {j4++; w4[j4]=v[i]; }
else if(v[i]%10==5) {j5++; w5[j5]=v[i]; }
else if(v[i]%10==6) {j6++; w6[j6]=v[i]; }
else if(v[i]%10==7) {j7++; w7[j7]=v[i]; }
else if(v[i]%10==8) {j8++; w8[j8]=v[i]; }
else if(v[i]%10==9) {j9++; w9[j9]=v[i]; }
inapoi();
}
while(k<=m)
{reinitializeaza();
for(i=1;i<=n;i++)
if(cifra(v[i],k)==0) {j0++; w0[j0]=v[i]; }
else if(cifra(v[i],k)==1) {j1++; w1[j1]=v[i]; }
else if(cifra(v[i],k)==2) {j2++; w2[j2]=v[i]; }
else if(cifra(v[i],k)==3) {j3++; w3[j3]=v[i]; }
else if(cifra(v[i],k)==4) {j4++; w4[j4]=v[i]; }
else if(cifra(v[i],k)==5) {j5++; w5[j5]=v[i]; }
else if(cifra(v[i],k)==6) {j6++; w6[j6]=v[i]; }
else if(cifra(v[i],k)==7) {j7++; w7[j7]=v[i]; }
else if(cifra(v[i],k)==8) {j8++; w8[j8]=v[i]; }
else if(cifra(v[i],k)==9) {j9++; w9[j9]=v[i]; }
inapoi();
k++;
}
for(i=1;i<=n;i++) g<<v[i]<<" ";
f.close();
g.close();
return 0;
}