#include <iostream>
#include <string>
using namespace std;
struct node
{
char val;
node *left, *right;
node(char x) : val(x), left(NULL), right(NULL) {}
};
string pre, in;
node* Create(int preL, int preR, int inL, int inR){
if(preL > preR){
return NULL;
}
node* root = new node(pre[preL]);
int k;
for(k = inL; k <= inR; k++){
if(in[k] == pre[preL]){
break;
}
}
int numLeft = k - inL;
root->left = Create(preL + 1, preL + numLeft, inL, k - 1);
root->right = Create(preL + numLeft + 1, preR, k + 1, inR);
return root;
}
void postOrder(node* root){
if(root == NULL){
return;
}
postOrder(root->left);
postOrder(root->right);
cout << root->val;
}
int main()
{
while(cin >> pre >> in){
node* root = Create(0, pre.length() - 1, 0, in.length() - 1);
postOrder(root);
cout << endl;
}
return 0;
}