//简单描述对字符串的排序
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
string str;//字符串和字符串数组
string a[1000];
int main()
{
int n,j;
scanf("%d",&n);
j=0;
for(int i=0;i<n;i++)
{
cin>>str;
a[++j]=str;
}
sort(a+1,a+j+1);//begin---end+1
for(int i=1;i<=j;i++)
cout<<a[i]<<endl;
}
//codeforce 53A题意:输入一个字符串s,输入n,n个字符串如果n个字符串中有以s为前缀的字符串,输出字典序最小的字符串
//如果没有以s为前缀的字符串则输出s
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
string a[105],s,stmp;
int main()
{
int n;
cin>>s; cin>>n;
int len=s.size(),id=0;
for(int i=0;i<n;i++)
{
cin>>stmp;
if(stmp.substr(0,len)==s)//substr函数返回截取的字符串
{
//获得字符串s中从第0位开始长度为len的字符串
//默认时长度为从开始到尾
a[++id]=stmp;
}
}
sort(a+1,a+id+1);
if(!id)
cout<<s<<endl;
else
cout<<a[1]<<endl;
return 0;
}