#include<iostream>
#include<string>
using namespace std;

struct TreeNode {
	char data;
	TreeNode* leftchild;
	TreeNode* rightchild;
};

void Postorder(TreeNode* t) {
	if (t == NULL) {
		return;
	}
	else {
		Postorder(t->leftchild);
		Postorder(t->rightchild);
		cout << t->data;
		return;
	}

}



TreeNode * BuildTree(string pre,string mid) {  //利用先序遍历来建树的原理
	if (0 == pre.size()) 
		return NULL;
	else {
		TreeNode* p = new TreeNode; 
		p->data = pre[0];
		//拿根来切割中序序列
		int pos = mid.find(pre[0]);  //找到中序序列中的下标
		p->leftchild = BuildTree(pre.substr(1, pos),mid.substr(0,pos) ); //将先序切割
		p->rightchild = BuildTree(pre.substr(pos + 1), mid.substr(pos + 1));
		return p;
	}


}

int main() {
	string pre,in;
	while (cin >> pre) {
		cin >> in;
		TreeNode * root;
		root = BuildTree(pre,in);
		Postorder(root);
		cout << endl;
	}
}