#include <stdio.h>
#include<malloc.h>
#include<string.h>
int main() {
int n, i, j, flag;
char tmp[101]; //用于存放
scanf("%d", &n);
//动态分配二维数组
char** str = (char**)malloc(n * sizeof(char*));
for (i = 0; i < n; i++)
str[i] = (char*)malloc(101 * sizeof(char));
for (i = 0; i < n; i++)
scanf("%s", str[i]);
for (j = n - 1; j >= 1; j--) {
flag = 0;
for (i = 1; i <= j; i++) {
if (strcmp(str[i - 1], str[i]) > 0) {
strcpy(tmp, str[i - 1]);
strcpy(str[i - 1], str[i]);
strcpy(str[i], tmp);
flag = 1;
}
}
if (flag == 0)
break;
}
for (i = 0; i < n; i++)
printf("%s\n", str[i]);
free(str);
return 0;
}