#include<bits/stdc++.h>
using namespace std;
struct tree{
int left,right;
}t[10010];
string qx,zx;
int build(int l1,int r1,int l2,int r2){
int r=qx[l1];
for(int i=l2;i<=r2;i++){
if(zx[i]==qx[l1]){
t[r].left=build(l1+1,l1+i-l2,l2,i-1);
t[r].right=build(l1+i-l2+1,r1,i+1,r2);
}
}
return r;
}
void post_order(int x){
if(t[x].left)post_order(t[x].left);
if(t[x].right)post_order(t[x].right);
cout<<char(x);
}
int main(){
cin>>zx>>qx;
post_order(build(0,qx.size()-1,0,zx.size()-1));
return 0;
}