#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;
}