#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void*a,const void*b)
{
    char *ta=*(char **)a;//注意比较的类型是指针
    char *tb=*(char **)b;
    return strcmp(tb,ta);
}

int main() {
    char *s[1000];
    char buf[100];
    int n;
    scanf("%d\n",&n);
    int i=0;
    for(;i<n;i++)
    {
        scanf("%s",buf);
        s[i]=(char *)malloc(strlen(buf)+1);//还要包括‘\0’的长度
        strcpy(s[i],buf);//不能直接等于
    }
    i--;//易漏
    
    qsort(s,n,sizeof(char *),cmp);

    for(;i>=0;i--)
    {
        printf("%s\n",s[i]);
        free(s[i]);
    }
    return 0;
}