#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
struct BT
{
char data;
BT *lchild,*rchild;
};
BT *build(string preorder,string inorder)
{
BT *root;
int p;
if(!preorder.length())
root=NULL;
else
{
root=new BT;
root->data=preorder[0];
p=inorder.find(root->data);
root->lchild=build(preorder.substr(1,p),inorder.substr(0,p));
root->rchild=build(preorder.substr(1+p),inorder.substr(p+1));
}
return root;
}
void postorder(BT *root)
{
if(root)
{
postorder(root->lchild);
postorder(root->rchild);
putchar(root->data);
}
}
int main()
{
string preorder,inorder;
BT *root;
while(cin>>preorder>>inorder)
{
root=build(preorder,inorder);
postorder(root);
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 2121
User: admin
Language: C++
Result: Accepted
Time:9 ms
Memory:2080 kb
****************************************************************/