#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 例题 dfs 背
int exist[26];
int g[30][30];
int in[30];//i+'a'之前有多少字母
char jg[30];
int n;
void dfs(int x,int k)
{
//cout<<(char)(x+'a')<<" "<<k<<endl;
jg[k]=x+'a';//抄博友程序
//cout<<n<<endl;
if(k==n)
{
//cout<<"hi"<<endl;
for(int i=1;i<=n;i++)
{
cout<<jg[i];
}
cout<<endl;
return;
}
//抄博友程序 背
in[x]=-1;//巧妙
for(int i=0;i<26;i++)
{
if(g[x][i]==1)
{
in[i]--;
}
}
for(int i=0;i<26;i++)
{
if(exist[i]==1 && in[i]==0)
{
dfs(i,k+1);
}
}
in[x]=0;
for(int i=0;i<26;i++)
{
if(g[x][i]==1)
{
in[i]++;
}
}
}
int main()
{
while(1)
{
memset(exist,0,sizeof(exist));
memset(g,0,sizeof(g));
memset(in,0,sizeof(in));
memset(jg,0,sizeof(jg));
n=0;
string a,b;
getline(cin,a);
//cout<<a<<endl;
for(int i=0;i<a.size();i++)
{
if(a[i]>='a' && a[i]<='z')
{
if(exist[a[i]-'a']==0)
{
n++;
}
exist[a[i]-'a']=1;
}
}
if(cin.eof()==1)
{
break;
}
//cout<<n<<endl;
getline(cin,b);
//cout<<b<<endl;
int x,y;
int flag=0;
for(int i=0;i<b.size();i++)
{
if(b[i]>='a' && b[i]<='z')
{
if(flag==0)
{
x=b[i]-'a';
flag=1;
}else if(flag==1)
{
y=b[i]-'a';
//cout<<(char)(x+'a')<<" "<<(char)(y+'a')<<endl;
flag=0;
g[x][y]=1;
in[y]++;
}
}
}
for(int i=0;i<26;i++)
{
if(exist[i]==1 && in[i]==0)
{
dfs(i,1);
}
}
cout<<endl;
}
}