using namespace std;
typedef char st[22];
st str[20003];
st s;int p=0;
struct tree_node
{
int count;
tree_node *next[26];
}root ,node[20003];
void insert(char *word)
{
tree_node *location=&root;
while (*word)
{
if (location ->next[*word-'a']==NULL)
{
node[p].count=0;
location->next[*word-'a']=&node[p++];
}
location =location->next[*word-'a'];
location->count++;
word++;
}
}
void search(char *word)
{
tree_node *location=&root;
while (*word&&location)
{
if (location->count ==1) break;
printf("%c",*word);
location=location->next[*word-'a'];
word++;
}
printf("%\n");
return;
}
int main()
{
int i=0;
while (scanf("%s",str[i])!=EOF)
{
insert(str[i]);
i++;
}
int n=i;
for (i=0;i<n;i++)
{
printf("%s ",str[i]);
search(str[i]);
}
return 0;
}