#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void convert(char str[], char newstr[])
{
char* p;
int i,n = strlen(str);
p= str;
while (*p!='\0')
{
if (*p != '0')
{
break;
}
p++;
}
if (*p == '\0')
{
newstr[0]='0';
newstr[1] = '\0';
}
else
{
for (i = 0; *p != '\0'; i++)
{
newstr[i] = *p;
p++;
}
newstr[i] = '\0';
}
}
int greater(char* s1, char* s2)
{
int len_s1, len_s2;
len_s1 = strlen(s1);
len_s2 = strlen(s2);
if (len_s1 > len_s2)
{
return 1;
}
else if (len_s1 < len_s2)
{
return -1;
}
else
{
return strcmp(s1, s2);
}
}
void sort(char* str[], int n)
{
char temp[101];
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (greater(str[i], str[j]) == 1)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
}
int main()
{
int n;
char* Str[10];
char str[101] = {0};
char newstr[101] = {0};
scanf("%d", &n);
getchar();
for (int i = 0; i < n; i++)
{
scanf("%s", str);
if (str[0] == '0')
{
convert(str, newstr);
strcpy(str,newstr);
}
Str[i] = (char*)malloc(101 * sizeof(char));
strcpy(Str[i],str);
}
sort(Str,n);
for (int i = 0; i < n; i++)
{
if(i<n-1)
printf("%s\n", Str[i]);
else
{
printf("%s", Str[i]);
}
}
return 0;
}