#include<bits/stdc++.h>
using namespace std;
struct trie
{
int cnt;
trie *next[26];
};
trie *rt=new trie;
char a[50000+5][20];
void settrie(char *s)
{
trie *p=rt,*t;
int n=strlen(s),i,c;
for(i=0;i<n;i++)
{
c=s[i]-'a';
if(p->next[c]==NULL)
{
t=new trie;
for(int j=0;j<26;j++)
{
t->next[j]=NULL;
t->cnt=0;
}
p->next[c]=t;
}
p=p->next[c];
}
p->cnt=1;
}
int check(char *s,int st,int len)
{
int i,j,c;
trie *p=rt;
for(i=0;i<st;i++)
{
c=s[i]-'a';
if(p->next[c]==NULL) break;
p=p->next[c];
}
if(i!=st||p->cnt==0) return 0;
p=rt;
for(;i<len;i++)
{
c=s[i]-'a';
if(p->next[c]==NULL) break;
p=p->next[c];
}
if(i!=len||p->cnt==0) return 0;
return 1;
}
int main()
{
int n,i,j,len,flag;
for(i=0;i<26;i++)
{
rt->next[i]=NULL;
rt->cnt=0;
}
n=0;
while(gets(a[n]))
{
if(strcmp(a[n],"")==0) break;
settrie(a[n]);
n++;
}
for(i=0;i<n;i++)
{
len=strlen(a[i]);
flag=0;
if(len==1) continue;
for(j=1;j<len;j++)
{
if(check(a[i],j,len)==1)
{
flag=1;
break;
}
}
if(flag) printf("%s\n",a[i]);
}
return 0;
}