#P2067. 2024.9.14-JD-第2题-小塔的字符串

2024.9.14-JD-第2题-小塔的字符串

题目内容

给小塔nn个字符串,请你对这nn个字符串按照以下规则从小到大排序。

对于任意两个字符串sstt,在排序后应当满足:

sstt的一个前缀,则ss在排序后的下标小于等于t的在排序后的下标。

若存在整数ii,使得ss的前i1i-1个字符和tt的前i1i-1个字符相同,且sstt的第ii个字符不同,则比较第ii个字符的大小关系(字符的大小关系顺序由输入数据给出)。若ss的第ii个字符小于等于tt的第ii个字符,则ss在排序后的下标小于等于t的在排序后的下标。

容易发现,上述排序方法排序结果是唯一的。

输入描述

第一行输入一个字符串,包含2626个互不相同的小写字母。记rank(c)rank(c)表示字母cc是该字符串的第rank(c)rank(c)个字符,则字母aa小于等于字母bb当且仅当rank(a)rank(b)rank(a)≤rank(b)

第二行输入一个整数n(1n1000)n(1≤n≤1000),表示待排序字符串的数量。

接下来nn行,每行一个仅包含小写字符的字符串si(si1000)s_i(|s_i|≤1000),表示一个待排序的字符串。

输出描述

按照排序后字符串位置下标从小到大的顺序输出nn行,每行一个字符串,表示排序的结果。

样例1

输入

abcdefghijklmnopqrstuvwxyz
3
aaa
aac
aaaa

输出

aaa
aaaa
aac

样例2

输入

zyxwvutsrqponmlkjihgfedcba
3
aaa
aac
aaaa

输出

aac
aaa
aaaa