#include<iostream>
using namespace std;
string a,b,n;
void dfs(string a,string b){
if(b.size()==0)return;
cout<<b[b.size()-1];
if(b.size()<=1)return;
int m1=0,m2=0;
for(int i=1;i<=a.find(b[b.size()-1])-1;i++){
int k=b.find(a[i]);
m1=max(m1,k);
}
for(int i=a.find(b[b.size()-1]);i<=b.size();i++){
int k=b.find(a[i]);
m2=max(m1,k);
}
dfs(a.substr(0,a.find(b[b.size()-1])),b.substr(0,m1+1));
dfs(a.substr(a.find(b[b.size()-1])+1,a.size()-a.find(b[b.size()-1])+1),b.substr(m1+1,b.size()-m1-2));
}
int main(){
cin>>a>>b;
dfs(a,b);
return 0;
}