#include <iostream>
#include <bits/stdc++.h>
#define maxn 30
using namespace std;
string in_order,m_order;
char L[maxn],R[maxn];
char build(int L1,int R1,int L2,int R2)
{
if(L1>R1) return '#';
int l,r,i;
char root = in_order[L1];
for(i = L2;i<=R2;i++)
{
if(m_order[i]==root)
{
break;
}
}
l = i-L2; r = R2-i;
L[root-'A'] = build(L1+1,L1+l,L2,i-1);
R[root-'A'] = build(L1+l+1,R1,i+1,R2);
return root;
}
void print(char c)
{
if(c=='#') return;
print(L[c-'A']);
print(R[c-'A']);
cout<<c;
}
int main()
{
int len1,len2;
while(cin>>in_order>>m_order)
{
len1 = in_order.size();
len2 = m_order.size();
build(0,len1-1,0,len2-1);
print(in_order[0]);
cout<<endl;
}
return 0;
}