import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 用数组标记 字母对应下标  ('z'-'a' 求下标) 是否出现过
        int[] zmInt = new int[26];
        String s = in.next();

        char[] chars = s.toCharArray();
        char[] newChars = new char[26];
        int start = 0;

        // 1.去除字符串中重复出现的字母
        for (char aChar : chars) {
            int index =  aChar - 'a';
            // 如果对应字母下标 为1,说明重复了
            if (zmInt[index] == 1) {
                continue;
            }
            zmInt[index] = 1;
            newChars[start++] = aChar;
        }

        char from = 'a';
        // 2. 在去重后的字符后面  依照字母表顺序补上没出现的字母
        while (from <= 'z') {
            // 如果当前字母没有出现过
            if (zmInt[from - 'a'] != 1) {
                newChars[start++] = from;
            }
            from++;
        }

        String t = in.next();

        char[] tChars = t.toCharArray();

        // 对 t 进行加密
        // 比如 待加密字符串第一个之母为 t
        // 那么他对应下标为 't'-'a', 在上面得出的加密 newChars 里对应下标的字母假设是 'c'
        // 那么 加密之后的第一个字母就改为 c
        for (int i = 0; i < tChars.length; i++) {
            tChars[i] = newChars[tChars[i] - 'a'];
        }

        System.out.println(new String(tChars));


    }
}