#include <bits/stdc++.h>
using namespace std;
string in,pos;
struct TNode{
char data;
TNode *lchild,*rchild;
TNode(){
lchild=rchild=nullptr;
}
TNode(char d,TNode *l,TNode *r){
data=d;
lchild=l;
rchild=r;
}
};
void PreTraverse(TNode *root)
{
//if(root==nullptr) return;
cout<<root->data<<" ";
if(root->lchild!=nullptr) PreTraverse(root->lchild);
if(root->rchild!=nullptr) PreTraverse(root->rchild);
}
TNode *build(TNode *node,int IL,int IR,int PL,int PR){
if(PL>=PR){
node=new TNode(pos[PR],nullptr,nullptr);
return node;
}
char val=pos[PR];
int p;
for(int i=IL;i<=IR;i++){
if(in[i]==val){
p=i;
break;
}
}
int x=p-IL;
node=new TNode(val,nullptr,nullptr);
node->lchild=build(node->lchild,IL,p-1,PL,PL+x-1);
node->rchild=build(node->rchild,p+1,IR,PL+x,PR-1);
return node;
}
int main(){
cin>>in>>pos;
TNode *root=nullptr;
root=build(root,0,in.size(),0,pos.size());
PreTraverse(root);
return 0;
}