#include<bits/stdc++.h>
using namespace std;
const int N=30;
int a[N][3];
char z[N],h[N],r;
int n,zl,l,x=0;
void zh(int s,int e,int li,int wei){
char g=h[e];
int i=0;
if(e-s==1){
x++;
a[x][0]=e;
a[li][wei]=e;
x++;
}
for(i=s;i<=e;i++){
if(g==z[i])
break;
}
x++;
a[x][0]=i;
a[li][wei]=i;
if(s==i-1)
a[x][1]=s;
else
zh(s,i-1,x,1);
if(i+1==e)
a[x][2]=e;
else
zh(i+1,e,x,2);
}
void qian(int x){
cout<<z[a[x][0]];
if(a[x][1]) qian(a[x][1]);
if(a[x][2]) qian(a[x][2]);
}
//void zzh(int zuo,int y){
// if(zuo==y) return;
// int i;
// for(i=zuo;i<=y;i++)
// if(h[y-1]==z[i])
// break;
// x++;
// a[y][1]=x;
// zzh(zuo,x);
// yzh(x+1,y);
//}
//void yzh(int zuo,int y){
// if(zuo==y) return;
// int i;
//// for(i=zuo;i<=y;i++)
//// if(h[y-1]==z[i])
//// break;
//// x++;
// a[y][1]=y-1;
// zzh(zuo,x);
// zzh(x+1,y);
//}
int main() {
int i;
cin.getline(z,27);
cin.getline(h,27);
l=strlen(z);
// hl=strlen(h);
// r=z[zl-1];
zh(0,l-1,1,0);
// for(i=0;i<zl;i++)
// if(r==h[i]) break;
// zzh(0,i);
qian(1);
return 0;
}