#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
string s, t;
cin >> s >> t;
// 对s进行去重,利用容器来做
// vector<char> unmulti_s;
string new_s;
map<char, int> isEixt; // 记录26个字母是否出现过
for (int i = 0; i < 26; ++i) {
isEixt['a' + i]; // int的初始值为0,表示未出现
}
for (auto& ch : s) {
// unmulti_s.insert(ch); // 去重时还需判断字符 是否出现过
auto it = isEixt.find(ch);
if (it->second) {
isEixt[ch]++; // 不加入到序列中
} else {
new_s += ch; // 加入到序列中
isEixt[ch]++;
}
}
// 然后在其末尾加上未曾出现的字符
for (auto& ele : isEixt) {
if (ele.second == 0) {
// unmulti_s.insert(ele.first);
new_s += ele.first;
}
}
for (int i = 0; i < t.length(); ++i) {
t[i] = new_s[t[i] - 'a'];
}
// 输出结果
cout << t << endl;
}