###感谢大佬
#include<iostream>
using namespace std;
string first;//前序
string mid,last;//中序,后序
int len,n;
void dfs(int t,string a,string b)
{
string l_tree,r_tree,back_1tree,back_2tree;
int temp;
int l=0,r=0,x=0;
int len=a.length();
if(t==n)
{
for(int i=0;i<len;i++)
{
cout<<first[i];
}
return;
}
first[t]=last[len-1];
for(int i=0;i<len;i++)
{
if(mid[i]==first[t])
{
temp=i;
}
}
for(int i=0;i<temp;i++)
{
l_tree[i]=mid[i];
x++;
}
for(int i=temp+1,j=0;i<len;i++,j++)
{
r_tree[j]=mid[i];
}
//
for(int i=0;i<x;i++)
{
back_1tree[i]=last[i];
}
for(int i=x;i<len-1;i++)
{
back_2tree[i]=last[i];
}
dfs(t+1,l_tree,back_1tree);//顺序根左右
dfs(t+1,r_tree,back_2tree);//然后右边的子子树
}
int main()
{
cin>>mid>>last;
n=mid.length();
dfs(0,mid,last);
return 0;
}