#include <iostream>
#include <string>
using namespace std;
struct TreeNode{
    char data;
    TreeNode* left;
    TreeNode* right;
    TreeNode(char c):data(c),left(nullptr),right(nullptr){};
};

//前序遍历和中序遍历构建二叉树
TreeNode* buildTree(string preorder,string inorder){
    if(preorder==""||inorder=="") return nullptr;
    char c = preorder[0];
    TreeNode *node=new TreeNode(c);
    int pos = inorder.find(c);
    node->left = buildTree(preorder.substr(1,pos), inorder.substr(0,pos));
    node->right = buildTree(preorder.substr(1+pos),inorder.substr(pos+1));
    return node;
}

void PrintPostOrder(TreeNode* tree){
    if(tree==nullptr) return;
    char c = tree->data;
    PrintPostOrder(tree->left);
    PrintPostOrder(tree->right);
    cout<<c;
}

int main() {
    string a,b;
    while(cin>>a>>b){
        TreeNode* tree = buildTree(a, b);
        PrintPostOrder(tree);
        cout<<endl;
    }
    return 0;
}