#include <iostream>
using namespace std;
struct treenode{
char data;
treenode* left;
treenode* right;
treenode(char c): data(c), left(nullptr), right(nullptr){};
};
treenode* buildtree(string s1, string s2){
if(!s1.size())return nullptr;
if(!s2.size())return nullptr;
if(s1.size()==1)return new treenode(s1[0]);
if(s2.size()==1)return new treenode(s2[0]);
treenode* root = new treenode(s1[0]);
int pos = s2.find(s1[0]);
root->left = buildtree(s1.substr(1,pos), s2.substr(0,pos));
root->right=buildtree(s1.substr(pos+1), s2.substr(pos+1));
return root;
}
void dfs(treenode* root){
if(!root)return;
dfs(root->left);
dfs(root->right);
cout<<root->data;
}
int main() {
string s1,s2;
while (cin >> s1 >> s2) { // 注意 while 处理多个 case
treenode *ans;
ans = buildtree(s1,s2);
dfs(ans);
puts("");
}
return 0;
}
// 64 位输出请用 printf("%lld")