#include<bits/stdc++.h>
using namespace std;
unordered_map<char,int>m;
unordered_map<char,char> lchild,rchild;
string pre,in;
char build(string in,string pre,int pl,int pr,int il,int ir){
if(il>ir) return '0';
int k=m[pre[pl]]-il;
char x=pre[pl];
lchild[x]=build(in,pre,pl+1,pl+k,il,il+k-1);
rchild[x]=build(in,pre,pl+k+1,pr,il+k+1,ir);
return x;
}
void postdfs(char x){
if(x=='0') return ;
postdfs(lchild[x]);
postdfs(rchild[x]);
cout<<x;
}
int main(string ){
while(cin>>pre>>in){
m.clear();
lchild.clear();
rchild.clear();
for(int i=0;i<in.size();i++){
m[in[i]]=i;
}
int n=pre.size()-1;
char x=build(in,pre,0,n,0,n);
postdfs(x);
cout<<endl;
}
return 0;
}