#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 100;
typedef struct BitNode{
char Data;
struct BitNode *Lchild,*rchild;
}BitNode,*Bittree;
char preArray[maxn];
char InArray[maxn];
void Createtree(Bittree &T, int prS, int prE, int inS, int inE)
{
T = (Bittree)malloc(sizeof(BitNode));
int Root;
T ->Data = preArray[prS];
for (int i = inS; i <= inE; i++)
{
if(T ->Data == InArray[i])
{
Root = i;
break;
}
}
if(Root != inS)
{
Createtree(T->Lchild,prS + 1,(Root - inS) + prS, inS, Root - 1);
}
else{
T->Lchild = NULL;
}
if(Root != inE)
{
Createtree(T->rchild,(Root - inS) + prS+1,prE,Root + 1,inE);
}
else{
T->rchild = NULL;
}
}
void printorder(Bittree T)
{
if(T->Lchild !=NULL)
{
printorder(T->Lchild);
}
if(T->rchild !=NULL)
{
printorder(T->rchild);
}
printf("%c",T->Data);
}
int main()
{
while(scanf("%s", preArray) != EOF)
{
Bittree T;
scanf("%s", InArray);
Createtree(T,0,strlen(preArray) - 1,0,strlen(InArray) - 1);
printorder(T);
cout << endl;
}
}