#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int cur = 0, z[100005], x[100005], h[100005], pos[100005];
char c, p[100005];
void srh(int l1, int r1, int l2, int r2, int l3, int r3){
if(l1 == r1)
return;
int rt = x[l1], ps = pos[x[l1]];
int d = ps - l2;
h[r3 - 1] = rt;
srh(l1 + 1, l1 + d + 1, l2, ps, l3, l3 + d);
srh(l1 + d + 1, r1, ps + 1, r2, l3 + d, r3 - 1);
}
int main(){
int i = 0;
while((c = getchar()) != '\n'){
i ++;
p[++cur] = c;
z[i] = cur;
pos[cur] = i;
}
i = 0;
while((c = getchar()) != '\n'){
i ++;
for(int j = 1;j <= 26;j ++)
if(p[j] == c)
x[i] = j;
}
srh(1, cur + 1, 1, cur + 1, 1, cur + 1);
for(int j = 1;j <= cur;j ++)
cout << p[h[j]];
return 0;
}